Windows 使用 MinGW 编译 OpenCV

发布于:2024-07-22 ⋅ 阅读:(182) ⋅ 点赞:(0)

使用 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。


网站公告

今日签到

点亮在社区的每一天
去签到