在 Windows 上進行 OpenCV 開發,很多人都是在 Visual Studio 上進行。然而在 VS 上的配置過程實在是個坑。但是其實 OpenCV 開發環境的搭建無非就是讓自己寫的 cpp 在編譯時能成功鏈接上。而這一過程其實可以輕鬆完成。下麵我就介紹一下我在自己的 Win10 上如何借 ...
在 Windows 上進行 OpenCV 開發,很多人都是在 Visual Studio 上進行。然而在 VS 上的配置過程實在是個坑。但是其實 OpenCV 開發環境的搭建無非就是讓自己寫的 cpp 在編譯時能成功鏈接上。而這一過程其實可以輕鬆完成。下麵我就介紹一下我在自己的 Win10 上如何藉助 MSYS2 完成這一任務。
- 安裝 MSYS2 :官網(http://www.msys2.org/)有詳細指導。
- 安裝 gcc 編譯器及相關工具 :mingw-w64-x86_64-toolchain(64位機器)或 mingw-w64-i686-toolchain(32位機器)。另外 pkg-config 也要安裝(可能已自動安裝了)。
- 安裝 OpenCV : $ pacman -S mingw-w64-x86_64-opencv
- 驗證是否安裝成功: $ pkg-config --cflags opencv (需在 Mingw64 終端運行: Mingw64 終端運行 mingw64 下的程式,相應的,Mingw32 終端運行 mingw32 下的程式)。應該輸出: -IC:/msys64/mingw64/include/opencv -IC:/msys64/mingw64/include
5. 實常式序測試:displayImage.cpp
1 #include <iostream>
2 #include <string>
3 #include <opencv2/opencv.hpp>
4
5 int main(int argc, char const *argv[]) {
6
7 std::string imageName("lena.jpg");
8 if(argc > 1)
9 {
10 imageName = argv[1];
11 }
12
13 cv::Mat image;
14 image = cv::imread(imageName, cv::IMREAD_COLOR);
15 if(image.empty())
16 {
17 std::cout << "Could not open or find the image file" << '\n';
18 return -1;
19 }
20
21 cv::namedWindow( imageName, cv::WINDOW_AUTOSIZE );
22
23 cv::imshow( imageName, image );
24
25 cv::waitKey(0);
26
27 return 0;
28 }
Makefile
# Link to OpenCV library
# It can be got from pkg-config, with
# -libs opencv
# command options.
lib_opencv_d = `pkg-config --libs opencv` # 動態鏈接
lib_opencv_a = `pkg-config --libs --static opencv` # 靜態鏈接
displayImage: displayImage.o
g++ displayImage.o $(lib_opencv_d) -o displayImage.exe
displayImage.o: displayImage.cpp
g++ -Wall -c -o displayImage.o displayImage.cpp
clean:
rm *.o *.exe
運行 make 應該成功編譯,運行程式可看到 “lena” 圖片。
提示一下,把 Mingw64 下的 bin 目錄添加進 PATH 環境變數便可在 Mingw64 終端外運行你的 OpenCV 程式了(比如直接雙擊 .exe 文件即可運行)。