ltlabc 2015-02-08 12:09 采纳率: 0%
浏览 11230

opencv 操作像素报错 cv::Exception

我在网上看到了很多种方法去操作图中的像素,但是无论用哪个都出现这样的错误:
0x7611b727 处有未经处理的异常: Microsoft C++ 异常: 内存位置 0x0039fa94 处的 cv::Exception。
编译是正确的。
我的代码:
#include
#include
#include
#include
#include

int main(int argc, char** argv)
{
//int i = 0;
cv::Mat foreground;
//for(int i = 0; i < 320; i++){
// for(int j = 0; j < 240; j++){
// foreground.atcv::Vec3b(i,j)[0] = 0;
// foreground.atcv::Vec3b(i,j)[1] = 0;
// foreground.atcv::Vec3b(i,j)[2] = 0;

//      foreground.at<uchar>(i,j) = 0;
//  }
//}

for (int j=0; j<foreground.rows; j++)
{
    uchar* data= foreground.ptr<uchar>(j);
    for (int i=0; i<foreground.cols; i++)
    {                 
        data[i] = 255;
    }
}

//for(int i=0;i<foreground.rows;i++)
//   for(int j=0;j<foreground.cols;j++)
//        foreground.at<uchar>(i,j)=255;
cv::imshow("video", foreground);

return 0;

}

里面种种被注释的也就是网上提到的一些方法。问题到底出在哪里了?没初始化么?可是我现在没注释掉的,就是逐像素赋值啊?我做的是运动目标跟踪,本来是在提取出运动区域以后(一张二值化的图)想根据运动区域的轮廓取出目标来,然后可以算直方图、角点什么的。在整体的代码里面,foreground是已经计算除的前景,所以也是有图像的,一样报错。

另外有哪位大神愿意被骚扰以后碰到问题直接问?求助啊

  • 写回答

4条回答 默认 最新

  • devmiao 2015-02-08 12:56
    关注

    uchar* data= foreground.ptr(j);
    在这里下一个断点,调试下,看看指针有没有越界以及其它问题。

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?