OpenCV - cvLoadImage()无法加载JPG图像

时间:2012-08-14 13:53:53

标签: visual-studio-2008 opencv jpeg

我是OpenCV的新手,想问一个关于加载图片的基本问题。

我在windows7上使用OpenCV2.0和Visual Studio 2008。

根据我的阅读和理解,有“cvLoadImage()”函数在OpenCV中加载图像。

我目前正在尝试非常基本的程序加载并在Windows中显示图片。

这是我的代码:

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

1 个答案:

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