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