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 运筹学中在线排序的时间在线排序的在线LPT算法
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧