欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

利用 MSYS2 在 Windows10 上搭建 OpenCV 开发环境

程序员文章站 2022-07-07 23:18:14
在 Windows 上进行 OpenCV 开发,很多人都是在 Visual Studio 上进行。然而在 VS 上的配置过程实在是个坑。但是其实 OpenCV 开发环境的搭建无非就是让自己写的 cpp 在编译时能成功链接上。而这一过程其实可以轻松完成。下面我就介绍一下我在自己的 Win10 上如何借 ......

  在 Windows 上进行 OpenCV 开发,很多人都是在 Visual Studio 上进行。然而在 VS 上的配置过程实在是个坑。但是其实 OpenCV 开发环境的搭建无非就是让自己写的 cpp 在编译时能成功链接上。而这一过程其实可以轻松完成。下面我就介绍一下我在自己的 Win10 上如何借助 MSYS2 完成这一任务。

  1. 安装 MSYS2 :官网(http://www.msys2.org/)有详细指导。
  2. 安装 gcc 编译器及相关工具 :mingw-w64-x86_64-toolchain(64位机器)或 mingw-w64-i686-toolchain(32位机器)。另外 pkg-config 也要安装(可能已自动安装了)。
  3. 安装 OpenCV :  $ pacman -S mingw-w64-x86_64-opencv 
  4. 验证是否安装成功: $ 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 文件即可运行)。