2012-08-13 89 views
0

我在我的Windows 7 64位使用CodeBlocks,我使用MinGw为我的默认C/C++编译器。在Windows 7 64位opencv 2.4错误

前几天我需要使用OpenCV的,之后我挣扎了很多错误,我得到unsolveable错误是这样的:

img http://oi49.tinypic.com/xc9hy8.jpg

img2 http://i48.tinypic.com/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"); 
} 

我相信我的链接&目录设置是正确的。所以,请帮我:)我快要放弃:(

+1

您需要检查在尝试显示图像之前,cvLoadImage是否成功。 – 2012-08-13 13:52:41

+0

我已经更改为cvLoadImage(“lena.jpg”);但仍然错误。我将lena.jpg放在与Main.exe相同的文件夹中 – psuedobot 2012-08-13 14:26:21

+0

您需要明确检查cvLoadImage的结果,例如, if(img == NULL){perror(“cvLoadImage failed”);出口(1); }' – 2012-08-13 16:38:22

回答

0

假设你正在做的一切都在代码和图像是否正确,这可能是一个问题,由于不兼容的二进制文件的OpenCV。

请有看看a similar installation来编译看看是否能正常工作我在安装时遇到了类似的问题,通过再次编译二进制文件修复了这个问题

+0

该链接是32位还是64位?如果32位I成功了,但对于64位,我仍然有问题当我需要运行我的程序(.exe) – psuedobot 2012-08-14 06:19:18

+0

此链接是编译32位的opencv二进制文件,但我一直使用它的Windows的一个64位版本 – masad 2012-08-14 15:38:43

+0

我试过了,但我得到错误,当我使用CMake在配置时使用MSYS。您是否尝试使用Open CV 2.4? – psuedobot 2012-08-15 09:41:00

0

问题是加载图像时最可能的失败,但是你只会确定如果您检查退货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"); 
}