如何让 OpenCV 在 Windows 下工作?

Posted

技术标签:

【中文标题】如何让 OpenCV 在 Windows 下工作?【英文标题】:How to make OpenCV work under Windows? 【发布时间】:2011-05-30 14:30:51 【问题描述】:

我无法在 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 和项目构建正常,但运行挂起。这台机器上没有其他可能干扰我的opencv编译的C、C++、编译器和IDE。

【问题讨论】:

【参考方案1】:

我在 opencv 论坛发了same question 并得到了答复。

问题是我使用 lib 或 bin opencv 目录进行链接和 PATH。使用安装指南,我发现我必须使用 lib 目录作为 PATH 的链接和 bin 目录。 lib 中的 dll.a 和 bin 中的 dll 的组合使用对我来说是新的。

于是我就跟着CodeBlocks+MinGW guide一步步解决了问题,而且 当我使用以前没有 CodeBlocks 构建的 MinGW opencv 时,C 或 C++ 代码都可以正常运行。

【讨论】:

【参考方案2】:

我想我已经找到了在 Windows 中安装 OpenCV 并在大多数 IDE 中使用它的详细说明:http://techarenagadgetz.in/2012/12/configuring-opencv-2-4-2-for-codeblocks-and-similar-ides/

【讨论】:

以上是关于如何让 OpenCV 在 Windows 下工作?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 上将 OpenCV 库正确链接到 Eclipse?

让 libspotify 中的示例在 Windows 7 下工作

关于ffmpeg和OpenCV在windows下运行要添加的环境变量

在 Windows 操作系统的情况下,如何将数据从 OpenCV 或 C++ 线程函数返回到主线程?

Windows下VS2017编译OpenCV 3.4.0-rc

Windows 下 Python 3.x 的 OpenCV [重复]