0

我在 Eclipse 中运行下面的代码,我已经成功地包含了路径和库,但是当运行代码时它显示一个错误。

 #include <cv.h>
 #include<stdio.h>
 #include <highgui.h>
  //using namespace cv;
 int main()
{     
 Mat image;
 image = imread( argv[1], 1 );

 if( argc != 2 || !image.data )
  {
    printf( "No image data \n" );
    return -1;
  }

 namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
 imshow( "Display Image", image );

 waitKey(0);
   printf("this is open cv programming");

  return 0;
}
4

2 回答 2

2

您的 main() 签名不完整

尝试

int main(int argc, char* argv[])

这些参数代表:

argc  // an int indicating the number of arguments passed in to the function

argv[]  // an array of character strings, the actual arguments.

第一个参数 argv[0] 是程序名……所以 argc 总是最小的 1。

第二个参数 argv[1] 将是您的用户传入的第一个参数,使 argc 达到 2。这就是您的程序所期望的,来自用户的单个参数 argc == 2。

于 2013-01-11T06:59:40.053 回答
0

尝试使用最新版本的 OpenCV 即 2.4.3 ....但是现在您可以尝试链接调试库,例如 opencv_core2.4.xd 并运行程序以使 Mat 图像格式正常工作。

你用的是什么版本的opencv?尝试以下代码并测试...获取一些图片并运行它...

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;

int main()
{
  Mat im = imread("C:\\some_picture.jpg");
  if(im.empty())
     return -1;
  imshow("TEST",im);
  waitKey();

  return 0;
}
于 2013-01-11T11:01:06.637 回答