在 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 文件即可运行)。