0

我在我的 windows 7 64 位中使用 CodeBlocks,我使用 MinGw 作为我的默认 c/c++ 编译器。

几天前我需要使用 OpenCV,在我遇到了很多错误之后,我得到了这样的无法解决的错误:

图像

img2

示例代码:

#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" );
}

我相信我的链接和目录设置是正确的。所以请帮助我:)我即将放弃:(

4

2 回答 2

0

假设您在代码和图像中所做的一切都是正确的,这可能是由于不兼容的 opencv 二进制文件而导致的问题。

请看一个类似的安装来编译,看看它是否有效。我在安装中遇到了类似的问题,通过再次编译二进制文件来解决这个问题。

于 2012-08-14T03:59:15.167 回答
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");
}
于 2012-08-14T13:16:27.247 回答