我最近在 Visual Studio 2008 专业版下安装了 OpenCV2.0,构建了库、dll-s 并且一切正常,但是当我运行第一个示例程序时:
#include “highgui.h”
int main( int argc, char** argv ) {
IplImage* img = cvLoadImage( argv[1] );
cvNamedWindow( “Example1”, CV_WINDOW_AUTOSIZE );
cvShowImage( “Example1”, img );
cvWaitKey(0);
cvReleaseImage( &img );
cvDestroyWindow( “Example1” );
}
它直接进入 Debug模式,但出现以下异常:HelloOpenCV.exe 中 0x7855b9f0 处未处理的异常:0xC0000005:访问冲突读取位置 0x00000000。
它还会切换到“loadsave.cpp”文件并指向该行:
return (IplImage*)cv::imread_(filename, iscolor, cv::LOAD_IMAGE );
在堆栈点:> highgui200.dll!cvLoadImage(const char * filename=0x00000000, int iscolor=1) Line 474 + 0x13 bytes C++
我还使用 visual studio 调试窗口制作了一个打印屏幕 link text
我认为它与放错位置的依赖项、dll-s 的问题有关。 如果有人知道我可以做些什么来解决这个问题,请回答,我将永远感激不已。
谢谢, 亚历克斯
最佳答案
您是否在命令行参数中为 argv[1]
指定了有效文件,即要读取的图像的 filename
?
关于c++ - Opencv + Visual Studio 2008 奇怪的调试问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1766544/