我无法在Windows下启动OpenCV应用程序。
鉴于以下简单的OpenCV计划:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include "cv.h"
#include "highgui.h"
char imagename[100] = "sudoku.jpg";
IplImage* img;
int main(int argc, char** argv) {
cvInitSystem(argc, argv);
cvNamedWindow("Example4", CV_WINDOW_AUTOSIZE);
IplImage* img = cvLoadImage(imagename);
cvShowImage("Example4", img);
cvWaitKey(0);
cvDestroyWindow("Example4");
return (0);
}
我可以编译并开始使用预编译的OpenCV库2.2版,引用的图像出现在窗口中。 (编译确实使用netbeans和cygwin或拥有5行和minGW的makefile)。 然后我想在OpenCV中使用C ++函数调用,但编译不起作用所以基于this answer我决定在this installation guide和this getting started guide之后重新编译OpenCV。
使用minGW和CMake OpenCV编译时没有抱怨。我没有使用任何可选包进行opencv编译。
不幸的是,没有程序可以启动,因为只有一个灰色窗口出现,然后应用程序崩溃并且Windows发出以下错误消息:
Problem signature:
Problem Event Name: APPCRASH
Application Name: main.exe
Application Version: 0.0.0.0
Application Timestamp: 4de3a2d9
Fault Module Name: libopencv_highgui220.dll
Fault Module Version: 0.0.0.0
Fault Module Timestamp: 4dcd07e6
Exception Code: c0000005
Exception Offset: 0002def4
OS Version: 6.1.7600.2.0.0.256.4
Locale ID: 1033
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
可能是什么问题?
我尝试使用我自己的Makefile和Cmake-gui从Netbeans编译,并且创建的高管没有问题。我在PATH中包含了opencv bin目录,以使所提到的libopencv_highgui220.dll可见。
更新
按照上一步程序,我在Windows XP Professional上得到了完全相同的结果:opencv和项目构建正常,但运行挂起。这台机器上没有其他C,C ++,编译器和IDE可能会干扰我的opencv编译。
答案 0 :(得分:2)
我在opencv论坛上发布了same question,我得到了答案。
问题是我使用lib或bin opencv目录进行链接和PATH。使用安装指南,我发现我必须使用lib目录作为PATH的链接和bin目录。 lib中的dll.a和bin中的dll的组合使用对我来说是新的。
此外,我一步一步地遵循CodeBlocks+MinGW guid e来解决问题 当我使用我之前没有CodeBlocks构建的MinGW opencv时,C或C ++代码运行正常。
答案 1 :(得分:1)
我已经找到了在Windows中安装OpenCV并在大多数IDE中使用它的详细说明:http://techarenagadgetz.in/2012/12/configuring-opencv-2-4-2-for-codeblocks-and-similar-ides/