【问题标题】:Using cvGet2D function - opencv使用 cvGet2D 函数 - opencv
【发布时间】:2014-12-19 20:07:17
【问题描述】:

嘿嘿, 我不知道错误在哪里/我认为它与 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

【问题讨论】:

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


    【解决方案1】:

    你也忘了说到底是什么问题。

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

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

    【讨论】:

    • 很抱歉投了反对票,但请不要帮助菜鸟一次又一次地射击他们的脚,拜托!
    • 请停止邪恶的级联,他们都在使用这个,因为他们已经看到了最近的“答案”,这使得使用死的东西看起来像是一种有效的方法。不是!
    【解决方案2】:

    既然您显然是 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);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 1970-01-01
      • 2017-03-20
      • 2019-12-05
      • 2018-12-29
      • 2010-11-01
      相关资源
      最近更新 更多