OPEN CV程序执行错误?

时间:2013-01-11 06:49:39

标签: opencv

我在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;
}

2 个答案:

答案 0 :(得分: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.

答案 1 :(得分: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;
}