OpenCV cvLoadImage()不会在visual studio调试器中加载图像?

Ner*_*f42 6 c++ opencv visual-studio-2008 visual-studio-debugging

我正在尝试为OpenCV制定一个简单的hello世界,但是为什么它不起作用的想法已经用完了.

当我编译并运行此代码时:

#include <cv.h>
#include <highgui.h> 
int main(int argc, char* argv[])
{
 IplImage* img = cvLoadImage( "myjpeg.jpg" );
 cvNamedWindow( "MyJPG", CV_WINDOW_AUTOSIZE );
 cvShowImage("MyJPG", img);
 cvWaitKey(0);
 cvReleaseImage( &img );
 cvDestroyWindow( "MyJPG" );
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

我得到一个大约200x200的灰色框而不是指示的.jpg文件.如果我使用不同的jpg,我会得到相同类型的窗口,如果我输入一个无效的文件名,我会得到一个非常小的窗口(预期).

我在Windows 7 Professional下使用Visual Studio 2008.

大多数示例程序似乎工作正常,所以我更加困惑的是,代码如何加载样本jpgs就好了,但在上面的代码中它不起作用(甚至试过样本jpeg).

更新

通过编译生成的可执行文件工作正常,但是每当我尝试运行调试器时,Visual Studio 2008调试器都会将空指针加载到img中 - 无论文件位置是隐式还是显式.

Cat*_*cob 8

看起来路径有问题,myjpeg.jpg因为当你在调试器下运行时,当前目录可能会有所不同.

默认情况下,Visual Studio调试器使用的当前目录是包含该.vcproj文件的目录,但您可以在项目属性(调试 - >工作目录)中更改它.

您是否100%确定正确传递绝对路径?尝试传递相同的路径fopen,看看它是否也返回NULL.如果是这样,那么路径是不正确的.

如果您想确切地查看试图打开的库的文件,可以使用带有过滤器的Project Monitormyjpeg.jpg.