使用cvGet2D函数 - opencv

时间:2014-12-19 20:07:18

标签: c++ opencv image-processing computer-vision

直升机, 我不知道错误在哪里/我认为它与cvGet2D函数有关但是哪里错了?

  IplImage *img = cvLoadImage("car1.jpg",0);
  CvScalar s;

  for(int i=0;i<img->height;i++)
  {
      for(int j=0;j<img->width;j++)
      {
          s = cvGet2D(img,i,j);
      }
  }

一段时间后有信息进程返回-1073741819&lt; 0xC0000005&gt;

2 个答案:

答案 0 :(得分:0)

你也忘了确切地说出问题所在。

我假设你没有测试cvLoadImage()的结果,并且应用程序在第一个for循环中崩溃了:

IplImage *img = cvLoadImage("car1.jpg",0);
if (!img) 
{
    printf("!!! Failed to load image\n");
    return;
}

答案 1 :(得分:0)

因为您显然对opencv不熟悉,所以,您必须使用它的c ++ api,而不是弃用的c-one。

cv::Mat img = cv::imread("car1.jpg", 0); // this will read a grayscale - 1channel image.
if ( img.empty() )
{
    // whaa, file not found
    return -1;
}

for(int i=0; i<img.rows; i++)
{
    for(int j=0; j<img.cols; j++)
    {
        uchar s = img.at<uchar>(i,j);
    }
}