2

私は OpenCV の初心者で、画像の読み込みに関する基本的な質問をしたいと考えています。

Windows7でOpenCV2.0とVisual Studio 2008を使用しています。

私が読んで理解したことから、OpenCVに画像をロードする「cvLoadImage()」関数があります。

私は現在、非常に基本的なプログラムをロードしてウィンドウに画像を表示しようとしています。

これは私のコードです:

#include "stdafx.h"
#include <cv.h>
#include <highgui.h>

int _tmain(int argc, _TCHAR* argv[])
{
  IplImage* img = cvLoadImage("C:/hello.jpg");

  if (!img)
    printf("Image can NOT Load!!!\n");

  cvNamedWindow("myfirstwindow");
  cvShowImage("myfirstwindow", img);

  cvWaitKey(0);
  cvReleaseImage(&img);

return 0;
}

その結果、灰色のウィンドウを取得できますが、画像は表示されませんでした。プロジェクトフォルダー内に画像を配置して呼び出すなど、他の解決策を試しましたが、それでも同じ結果が得られました。

ただし、.png などの他の種類の画像を使用しようとすると、正常に読み込まれました。

以前に同じ問題を抱えていた、またはこの問題を解決するための解決策を知っている人はいますか?

ありがとう、

-jwiil-

4

1 に答える 1

1

これは、プログラムに与えているパスが実際には何も指していないためです。

画像を同じフォルダに入れる場合は、呼び出す必要があります

cvLoadImage("hello.jpg");

画像が他の場所にある場合は、@vasileがコメントしたように、呼び出す必要があります

cvLoadImage("C:\\hello.jpg");

また、画像が正しく読み込まれない場合に終了するようにコードを編集しました

#include "stdafx.h"
#include <cv.h>
#include <highgui.h>

int _tmain(int argc, _TCHAR* argv[])
{
  IplImage* img = cvLoadImage("C:/hello.jpg");

  if (!img)
  {
    printf("Image can NOT Load!!!\n");
    return 1;
  }

  cvNamedWindow("myfirstwindow");
  cvShowImage("myfirstwindow", img);

  cvWaitKey(0);
  cvReleaseImage(&img);

return 0;
}
于 2012-08-14T15:51:15.467 に答える