在 windows 7 -'bits 下编译 opencv 3 mingw64

Compiling opencv 3 mingw64 under windows 7 -'bits

任何人都可以指出使用 Mingw64 编译 Opencv 3.0 以用于 Java 的过程。

你能告诉我 opencv 64 位编译器兼容版本吗,因为我已经尝试了很多版本并且 none 有效。

例如,TDM-gcc 64 位有时会崩溃。

OpenCV 是一个开源多平台项目,由开发人员(而非最终用户)和计算机视觉科学家开发并为之服务。虽然默认情况下包含一些预编译的二进制文件(也适用于 Java),但如果您在使用它们时遇到问题,您应该在您的特定 OS 和硬件中使用您需要的模块自行构建 opencv。

这是我刚刚在我的Windows机器上用MinGW编译OpenCV 3.2(因为我不想安装visual studio)的方法。如果您在没有 Java 支持的情况下构建,这些说明也适用。

  1. (可选) 为了以防万一,删除任何旧的 OpenCV 安装。如果您遇到重大问题,还请删除以前的 MinGW、Ant、JDK 和 CMake 安装,并确保您的 Windows 系统路径没有指向它们...您可能想从从头开始。
  2. 下载并安装MinGW(最新版本)。我喜欢安装在"C:\MinGW"。最好确保系统中没有安装其他 MinGW,这样就不会发生冲突。
  3. 下载并安装 CMake(最新版本,在我的例子中是 beta 3.9.0)
  4. 将mingw的bin路径添加到Windows系统PATH;为了以防万一,这里有一个 basic tutorial on it(在我的例子中,我添加了 C:\MinGW\bin)。
    • (如果你需要Java,否则你可以跳过)如果你还没有,下载并安装JDK and Ant(我喜欢安装 JDK 后重新启动)。确保 JAVA_HOME Windows 系统变量设置到正确的位置,并且 Windows 系统 PATH 包含到 JDK 的 "bin" 目录的路径.
  5. 重新启动 Windows 以便识别路径更改。
  6. 从其 github 项目页面 (https://github.com/opencv/opencv) 下载完整的 opencv 源代码。这是最新的 public 版本。如果您不知道如何使用 Git,那里有一个 "Clone or download" 按钮。
  7. 将 opencv 的源代码提取到容易找到的地方(我喜欢在 C:\opencv 中进行,这样文件 README.md[= opencv根文件夹中的70=]出现在C:\opencv\README.md)。
  8. 打开 CMake GUI(这里是 video 其基本用法)。
  9. 设置源代码(在我的例子中是 C:/opencv)和二进制文件构建路径(我喜欢在 C:[=121 中进行) =]).
  10. 配置。由于我们正在使用 MinGW select "MinGW Makefiles" 和 "Use default native compilers" 执行此操作(如果您已经安装了其他 MinGW 版本,您可能需要检查您的系统路径以确保没有冲突,或者select "specify native compilers" 并手动设置路由)。
  11. 很多红色的东西,第一次通过时很正常。对于 CMake beta 3.9.0,我不得不取消选中 ENABLE_PRECOMPILED_HEADERS 来避免一些奇怪的错误 但这可能会在未来改变 。我喜欢取消选中 BUILD_TESTS 和 BUILD_PERF_TESTS 以使编译速度更快,但这取决于您的需要。
    • (if you need Java) 因为你安装了 Ant,变量 ANT_EXECUTABLE 应该已经被 CMake 自动检测到,否则,修复这个(可能手动设置路径)。还要检查出现的新 BUILD_FAT_JAVA_LIB,它确保创建了 Java 包装器。
    • (if you need Java)应该出现了一堆"JAVA_"前缀的变量;检查它们并在需要时手动设置。这是一个(不太优雅的)示例,您可以用来指导自己(确保使用您的路径):
  12. 点击Configure按钮直到不再是红色。然后点击生成。如果一切顺利,最后应该会显示类似 "cvconfig.h is in: C:/opencv/build , Configuring done , Generating done" 的内容。现在我们终于可以构建了。
  13. 打开您的控制台(cmd;上面有一个 basic tutorial)。
  14. 导航到构建目录 (C:/opencv/build) 并执行命令 mingw32-make -j4 其中“ -j4" 是并行线程的数量,我建议尽可能多的 CPU 核心数量允许最大速度。
  15. 等等。很多。它应该在 100% 后完成。
  16. 现在执行mingw32-make install .
  17. 我们完成了。在类似于 C:\opencv\build\install\x86\mingw\bin 的路径中查找您的新二进制文件,您可能希望将其添加到您的 Windows 系统路径中。

现在,您应该测试您构建的内容是否真的有效。打开你喜欢的 IDE,然后尝试 运行 一个简单的 opencv helloworld 项目,它显示了一个简单的 Mat,就像这个 C/C++ 代码的等价物:

#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace cv;

int main(int argc, char *argv[]) {
    Mat img = Mat::ones(256, 256, CV_8U) * 200;
    imshow("Gray image", img);
    waitKey(0);
    return 0;
}

(在构建项目之前,记得在 IDE 中设置 opencv includes 和 libs,在我的例子中 "C:\opencv\build\install\include" 和你需要的 lib 文件 "C:\opencv\build\install\x86\mingw\lib")

如果屏幕上出现某些内容,恭喜!