OpenCV 2.4.5,eclipse CDT Juno,MinGW错误0xc0000005

问题描述 投票:1回答:2

在Windows 7 64位,AMD处理器上,我安装了OpenCV 2.4.5,使用eclipse CDT Juno和MinGW,所有内容都进行了最新更新。以前eclipse CDT和MinGW编译了100多个源文件而没有任何问题。他们甚至编译这个小的OpenCV源文件,

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;

int main()
{
    IplImage* img1 = cvLoadImage("lenna.png");
    cvShowImage("MyWindow1", img1);

    cv::Mat img2;
    img2 = cv::imread("lenna.png", CV_LOAD_IMAGE_COLOR);

    cv::namedWindow("MyWindow2", CV_WINDOW_AUTOSIZE);
    cv::imshow("MyWindow2", img2);

    cvWaitKey(0);
    return 0;
}

但当我尝试运行它然后它与臭名昭着的打破

“应用程序无法正确启动(0xc0000005)。单击”确定“关闭应用程序。”

可能出现什么问题以及解决这个问题的方法是什么?

  1. OpenCV(PreCompiled)解压缩到“C:\ OpenCV245PC \”(README,index.rst和CMakeLists.txt都包含所有子文件夹)
  2. Windows系统PATH设置为C:\ OpenCV245PC \ build \ x86 \ mingw \ bin
  3. Eclipse GCC C ++编译器,包含路径(-I)设置为“C:\ OpenCV245PC \ build \ include”
  4. Eclipse MinGW C ++链接器,库搜索路径(-L)设置为:“C:\ OpenCV245PC \ build \ x86 \ mingw \ lib”
  5. Eclipse MinGW C ++链接器,库(-l)设置为:

opencv_calib3d245 opencv_contrib245 opencv_core245 opencv_features2d245 opencv_flann245 opencv_gpu245 opencv_highgui245 opencv_imgproc245 opencv_legacy245 opencv_ml245 opencv_nonfree245 opencv_objdetect245 opencv_photo245 opencv_stitching245 opencv_video245 opencv_videostab245

windows opencv mingw eclipse-cdt
2个回答
6
投票

经过多次试验和错误后,我决定关注this教程并编译我自己的二进制文件,因为似乎有太多人抱怨预编译的二进制文件不适用于它们。 Eclipse CDT Juno已经安装完毕。

我的程序如下:

  1. 下载并安装MinGW并使用c:/ mingw / bin添加到系统PATH
  2. http://www.cmake.org下载cmake并安装它
  3. 下载OpenCV2.4.5 Windows版本
  4. 安装/解压缩Opencv到C:\ OpenCV245PC \(README,index.rst和CMakeLists.txt都包含所有子文件夹)
  5. 然后运行CMake GUI工具
  6. 选择C:\ OpenCV245PC \作为源
  7. 选择目标,C:\ OpenCV245MinGW \ x86在哪里构建二进制文件
  8. 按Configure按钮,选择MinGW Makefiles作为生成器。窗口中有一些红色高光,您可以根据需要选择选项。
  9. 再次按“配置”按钮。配置现已完成。
  10. 按Generate按钮。
  11. 生成完成后退出程序。
  12. 退出Cmake程序。
  13. 运行命令行模式(cmd.exe)并转到目标目录C:\ OpenCV245MinGW \ x86
  14. 输入“mingw32-make”。您将看到构建二进制文件的进度。如果未找到该命令,则必须确保使用c:/ mingw / bin添加系统PATH。构建将根据所选选项继续完成。
  15. 在Windows系统路径(我的电脑>右键单击>属性>高级>环境变量>路径)中添加目标的bin目录,C:\ OpenCV245MinGW \ x86 \ bin
  16. 重新启动计算机
  17. 转到Eclipse CDT IDE,使用示例OpenCV代码创建C ++程序(您可以使用本主题顶部的代码)。
  18. 转到项目>属性> C / C ++生成>设置> GCC C ++编译器>包含,并添加源OpenCV文件夹“C:\ OpenCV245PC \ build \ include”
  19. 转到项目>属性> C / C ++构建>设置> MinGW C ++链接器>库,并添加到库(-l)ONE BY ONE(这可能因项目而异,如果您愿意,可以添加所有这些或者有些人只是你需要为你的项目的):opencv_calib3d245 opencv_contrib245 opencv_core245 opencv_features2d245 opencv_flann245 opencv_gpu245 opencv_highgui245 opencv_imgproc245 opencv_legacy245 opencv_ml245 opencv_nonfree245 opencv_objdetect245 opencv_photo245 opencv_stitching245 opencv_video245 opencv_videostab245
  20. 将构建的OpenCV库文件夹“C:\ OpenCV245MinGW \ x86 \ lib”添加到库搜索路径(-L)。

您可以使用此代码测试您的设置:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main()
{

Mat img = imread("c:/lenna.png", CV_LOAD_IMAGE_COLOR);

namedWindow("MyWindow", CV_WINDOW_AUTOSIZE);
imshow("MyWindow", img);

waitKey(0);
return 0;
}

不要忘记把图像放到C:/(或者你可能找到合适的地方,只要确保eclipse已经阅读过了。


1
投票

你能试试这段代码吗?

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main()
{

Mat img = imread("lenna.png", CV_LOAD_IMAGE_COLOR);

namedWindow("MyWindow", CV_WINDOW_AUTOSIZE);
imshow("MyWindow", img);

waitKey(0);
return 0;
}

因为你似乎没有为img1创建一个窗口,也没有为img2分配imread输出。

© www.soinside.com 2019 - 2024. All rights reserved.