1

我按照此 SO 链接中的步骤在 Windows 中使用 OpenCV2.4.0 编译示例程序。我使用 Mingw 在 DEVC++ 和 NetBeans 中进行了设置。我的示例程序正在正确编译,但是当我运行 exe 时,应用程序崩溃了。

但是在同一台机器上,我使用了 opencv2.1.0 并且编译了相同的示例程序,并且在运行它时没有崩溃。

以下是我尝试执行的示例代码:

#include "highgui.h"
using namespace std;
int main( int argc, char** argv ) {
IplImage* img = cvLoadImage( "C:\\Documents and Settings\\All Users\\Documents\\My Pictures\\Sample Pictures\\Water lilies.jpg" );
cvNamedWindow( "Sample", CV_WINDOW_AUTOSIZE );
cvShowImage( "Sample", img );
cvWaitKey(0);
cvReleaseImage( &img );
cvDestroyWindow( "Sample" );
} 

更新 :

我按照moskito-x链接的步骤构建opencv,当我按“配置”时,出现以下错误。我的 make 文件大小也是 35kb。有什么建议可以解决这个问题吗? 在此处输入图像描述

4

3 回答 3

2

使用“...\opencv\build\x86\mingw\bin”和“...\opencv\build\x86\mingw\lib”中的库

您不能使用 OpenCV-2.4.x.exe 附带的库。

正如论坛中的一些开发人员和我发现的那样。在某些系统上,无法使用“opencv 2.4.x”的预编译库。
编译你自己的程序是可行的,但如果你尝试运行它们,它就会崩溃。在没有“opencv 2.4.x”的预编译库无法运行之前,您必须自己编译opencv。

完全忽略文件夹“...\opencv\build\x86\mingw\bin”和“...\opencv\build\x86\mingw\lib”。

于 2012-10-24T15:07:05.213 回答
1

正如已经指出的那样,您不能依赖预编译的二进制文件。我也遇到了很多问题,最后还是编译了自己的二进制文件。我的设置适用于 Windows7、Eclipse CDT (Juno) 和 MinGW。你可以在这里查看我在 Stackoverflow 上的帖子

于 2013-07-01T11:31:33.433 回答
0

我猜这是与内存管理有关的错误。也许是因为你在图像之前释放了窗口。但无论如何,您应该使用 OpenCV C++ 接口,因为它会自动完成很多工作。使用 C++ 接口,您的代码将如下所示:

    #include <opencv.hpp>

    int main( int argc, char** argv ) {

            cv::Mat img = cv::imread("C:\\Documents and Settings\\All Users\\Documents\\My Pictures\\Sample Pictures\\Water lilies.jpg");

            cv::imshow("Sample", img);
            cv::waitKey(0);

            return 0
    }
于 2012-10-23T09:35:54.267 回答