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

Windows 7 64位,AMD处理器上,我安装了OpenVC 2.4.5,带有Eclipse CD Juno和MinGW,一切都是最新的更新。 以前蚀食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)。单击”确定“closures应用程序。

什么可能是错的,什么是解决这个问题?

  1. OpenCV(预编译)解压缩到“C:\ OpenCV245PC \(README,index.rst和CMakeLists.txt是所有子文件夹)
  2. Windows系统path设置为C:\ OpenCV245PC \ build \ x86 \ mingw \ bin
  3. Eclipse GCC C ++编译器,包含path(-I)设置为“C:\ OpenCV245PC \ build \ include”
  4. Eclipse MinGW C ++链接器,库searchpath(-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

经过许多试验和错误,我决定按照这个教程来编译我自己的二进制文件,因为似乎有太多的人抱怨预编译的二进制文件不适合他们。 Eclipse CDT Juno已经安装。

我的程序如下:

  1. 下载并安装MinGW并使用c:/ mingw / bin添加到系统PATH中
  2. http://www.cmake.org下载cmake并安装&#x5B83;
  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. 按配置按钮,选择MinGW Makefiles作为生成器。 窗口中有一些红色高亮显示,根据需要选择选项。
  9. 再次按下配置按钮。 配置现在完成了。
  10. 按“生成”按钮。
  11. 生成完成后退出程序。
  12. 退出Cmake程序。
  13. 运行命令行模式(cmd.exe)并转到目标目录C:\ OpenCV245MinGW \ x86
  14. 键入“mingw32-make”。 你会看到构建二进制文件的进度。 如果找不到该命令,则必须确保系统PATH已添加到c:/ mingw / bin中。 构建继续根据选择的选项完成。
  15. 在Windows系统路径(我的电脑>右键单击>属性>高级>环境变量>路径)添加目标的bin目录,C:\ OpenCV245MinGW \ x86 \ bin
  16. 重新启动计算机
  17. 转到Eclipse CDT IDE,使用示例OpenCV代码创建一个C ++程序(您可以使用本主题顶部的代码)。
  18. 转到Project> Properties> C / C ++ Build> Settings> GCC C ++ Compiler>包含并添加源代码OpenCV文件夹“C:\ OpenCV245PC \ build \ include”
  19. 转到Project> Properties> C / C ++ Build> Settings> MinGW C ++ Linker> Libraries,并添加到库(-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
  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已经读取了。

你可以试试这个代码,

 #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创建一个窗口,也没有将imread输出分配给img2。