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です。

2 番目の引数 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 に答える