Pir Fahim Shah
Pir Fahim Shah

Reputation: 10623

OPEN CV Program execution error?

I am running my below code in eclipse, i have include the path and libraries successfuly, but when run the code it shows an error.

 #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;
}

Upvotes: 0

Views: 170

Answers (2)

rotating_image
rotating_image

Reputation: 3076

Try to use the latest version of OpenCV i.e. 2.4.3....however right now you can try to link the debug libraries e.g. opencv_core2.4.xd and run the program to get the Mat image format working.

what is the version of opencv you are using? try the following code and test...get some picture and run it....

#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;
}

Upvotes: 0

foundry
foundry

Reputation: 31745

Your main() signature is incomplete

try

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

these parameters represent:

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

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

The first argument argv[0] is the program name ... so argc is always a minimum of 1.

The second argument, argv[1] will be the first argument your user passes in, bringing argc up to 2. That is what your program is expecting, a single argument from the user, argc == 2.

Upvotes: 2

Related Questions