我在Windows 7 64位中使用CodeBlocks,并使用MinGw作为默认的c / c ++编译器。
几天前,我需要使用OpenCV,经过了很多错误之后,我得到了这样的难以解决的错误:
img http://img.zgserver.com/c%2B%2B/xc9hy8.png
img2 http://img.zgserver.com/c%2B%2B/pwt8j.png
示例代码:
#include "cv.h" #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" ); }
我相信我的链接和目录设置是正确的。 所以请帮助我:)我即将放弃:(
假设你正在做的代码和图像的一切正确,这可能是一个问题,由于不兼容的opencv二进制文件。
请看看类似的安装来编译,看看它是否工作。 我在安装时遇到了类似的问题,通过再次编译二进制文件修复了这个问题。
加载图像时,问题很可能是失败。 但是你只能确定如果你检查cvLoadImage()
的返回值:
IplImage* img = cvLoadImage( argv[1] ); if (!img) { printf("!!! cvLoadImage failed\n"); }
如果图像格式不受支持,或者在指定位置找不到图像,该功能将失败。
您的应用程序期望加载从命令行传递的文件,所以您最好执行您的应用程序: Main.exe C:\some_img.png
您也可以在您的代码中对文件名进行硬编码:
IplImage* img = cvLoadImage("C:\\some_img.png"); if (!img) { printf("!!! cvLoadImage failed\n"); }