Windows 使用 MinGW 编译 OpenCV

使用 MinGW 编译 OpenCV 是一个不错的选择,特别是如果您想避免使用 Visual Studio。下面是使用 MinGW 和 CMake 编译 OpenCV 的详细步骤。

准备工作

1. 下载 OpenCV 源代码

从 OpenCV GitHub 仓库下载 OpenCV 源代码。

git clone https://github.com/opencv/opencv.git
cd opencv
git checkout 4.x
2. 下载 OpenCV Contrib 源代码

从 OpenCV Contrib GitHub 仓库下载 Contrib 模块。

cd ..
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git checkout 4.x
3. 安装 MinGW 和 CMake
  • 下载并安装 MinGW。推荐使用 MSYS2 以获得最新的工具链。
  • 下载并安装 CMake。

环境设置

确保 MinGW 和 CMake 的路径已添加到系统的环境变量 PATH 中。您可以通过在命令提示符中输入以下命令来验证安装:

mingw32-make --version
cmake --version

编译步骤

1. 创建构建目录

在 OpenCV 源代码目录中创建一个新的构建目录:

mkdir build
cd build
2. 使用 CMake 配置和生成构建文件

在构建目录中运行以下命令:

cmake -G "MinGW Makefiles" .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_PREFIX=./install -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -DOPENCV_ENABLE_NONFREE=ON

参数说明:

  • -G "MinGW Makefiles":使用 MinGW 生成 Makefile。
  • -DCMAKE_BUILD_TYPE=Release:指定构建类型为 Release。
  • -DCMAKE_VERBOSE_MAKEFILE=ON:启用详细的 Makefile 输出。
  • -DCMAKE_INSTALL_PREFIX=./install:指定安装目录为当前目录下的 install 文件夹。
  • -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules:指定额外模块路径。
  • -DOPENCV_ENABLE_NONFREE=ON:启用非免费模块(如 SIFT)。
3. 编译 OpenCV

运行以下命令进行编译:

mingw32-make -j4

-j4 参数会使用 4 个并行作业进行编译,您可以根据自己的 CPU 核心数调整此参数。

4. 安装 OpenCV

编译完成后,运行以下命令进行安装:

mingw32-make install

这会将编译好的文件安装到 CMAKE_INSTALL_PREFIX 指定的目录中(即 ./install)。

验证安装

编写一个简单的 C++ 程序来验证 OpenCV 是否成功安装:

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

int main() {
    cv::Mat image = cv::imread("example.jpg");
    if (image.empty()) {
        std::cerr << "Could not open or find the image!" << std::endl;
        return -1;
    }
    cv::imshow("Display window", image);
    cv::waitKey(0);
    return 0;
}
编译和运行测试程序

创建一个新的目录,例如 test_opencv,并在其中创建一个 CMakeLists.txt 文件:

cmake_minimum_required(VERSION 3.10)
project(TestOpenCV)

find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})

add_executable(TestOpenCV main.cpp)
target_link_libraries(TestOpenCV ${OpenCV_LIBS})

创建 main.cpp 文件,并将上述测试代码粘贴进去。

运行 CMake 和编译程序:

mkdir build
cd build
cmake -G "MinGW Makefiles" ..
mingw32-make

运行生成的可执行文件:

./TestOpenCV

确保 example.jpg 文件在与可执行文件相同的目录中,或者提供正确的路径。

通过这些步骤,您应该能够在 Windows 上使用 MinGW 成功编译和使用 OpenCV。

相关推荐

  1. Windows 使用 MinGW 编译 OpenCV

    2024-07-21 16:28:02       18 阅读
  2. windowsMinGW,TDM-GCC 编译64位和32位应用

    2024-07-21 16:28:02       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 16:28:02       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 16:28:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 16:28:02       45 阅读
  4. Python语言-面向对象

    2024-07-21 16:28:02       55 阅读

热门阅读

  1. 【C++之智能指针知识】

    2024-07-21 16:28:02       16 阅读
  2. C++分组背包问题_动态规划dp_背包_算法竞赛

    2024-07-21 16:28:02       17 阅读
  3. Qt编程技巧总结篇(5)-信号-槽-多线程(四)

    2024-07-21 16:28:02       18 阅读
  4. cannot import name ‘OrderedDict‘ from ‘typing‘

    2024-07-21 16:28:02       16 阅读
  5. GFS分布式文件系统

    2024-07-21 16:28:02       16 阅读
  6. 牛客暑假训练2 C.Red Walking on Grid

    2024-07-21 16:28:02       18 阅读
  7. Python之后端Django(六)

    2024-07-21 16:28:02       13 阅读
  8. blender和3dmax和maya和c4d比较

    2024-07-21 16:28:02       17 阅读
  9. 数据结构第33节 在不同领域的应用

    2024-07-21 16:28:02       13 阅读
  10. 【软考】UML中的关联关系

    2024-07-21 16:28:02       20 阅读
  11. firefly rk3288 ubuntu23.10 网卡名为end0 改为eth0

    2024-07-21 16:28:02       15 阅读
  12. C++狼人杀游戏(真的能运行!!!)

    2024-07-21 16:28:02       15 阅读