Windows中的mingw Opencv2.4.0崩溃了

时间:2012-10-22 05:15:55

标签: netbeans opencv mingw dev-c++

我按照步骤in this SO link在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的步骤,当我按下“configure”时,我收到以下错误。而我的make文件也是35kb。 有什么建议可以解决吗? enter image description here

3 个答案:

答案 0 :(得分:2)

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

中的库

您无法使用OpenCV-2.4.x.exe附带的库。

正如论坛中的一些开发人员和我发现的那样。在某些系统上,不能使用“opencv 2.4.x”的预编译库 要编译自己的程序,可以正常工作,但是如果你试图运行,就会崩溃。直到没有“opencv 2.4.x”的预编译库运行,你必须自己compile opencv。

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

答案 1 :(得分:1)

正如已经指出的那样,你不能依赖预编译的二进制文件。我也有很多问题,最后编译了我自己的二进制文件。我的设置适用于Windows7,Eclipse CDT(Juno)和MinGW。您可以在Stackoverflow here

上查看我的帖子

答案 2 :(得分: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
    }