在Windows上用Visual Studio编译OpenCV

在Windows上编译开源项目,有时候让人痛不欲生,有时候却出奇地顺利。OpenCV属于后者。本文记录这次愉快的过程。

注:OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。它提供了大量的函数和算法(官网上说有2500个算法),用于处理图像和视频。这些功能涵盖了从图像的读取、写入和基本处理(如裁剪、旋转、缩放),到复杂的对象检测、人脸识别、图像分割等高级任务。OpenCV在自动驾驶、医疗诊断、安防监控等众多领域都发挥着重要作用。

以下是完整的五个步骤:

  1. 前提:本人的电脑是Windows 10,已经安装了Visual Studio 2019。你也可以去微软官网下载VS 2022社区版,个人是可以免费使用的哦。
  2. 下载CMake工具。OpenCV使用CMake做配置管理。建议到cmake.org官网下载工具的最新版,选择"Windows x64 ZIP"即可,下载完了在本地解压,可以直接使用。
  3. 从GitHub下载OpenCV源代码:git clone https://github.com/opencv/opencv.git
  4. 通过CMake生成编译工程。首先,运行cmake-gui.exe:

然后,顺序执行以下5个步骤(假设OpenCV源代码位于D:\Dev\GitHub\opencv目录下):

  • 点击"Browse Source"按钮,指定OpenCV源代码的位置,这里有一个关键的CMakeLists.txt文件;
  • 点击"Browse Build"按钮,指定编译生成的文件路径,建议在opencv目录下新建一个build文件夹;
  • 点击"Configure"按钮进行配置,这个过程比较耗时(大约300秒),上图中红色部分是各种配置选项,具体释义参见官方文档
  • 点击"Generate"按钮,即生成了所有必要的Visual Studio工程;
  • 点击"Open Project"按钮,即可用Visual Studio打开build目录下的OpenCV.sln。
  1. 编译OpenCV源码,并尝试运行第一个程序。在Visual Studio里看起来是这样的:

我们可以来试试applications文件夹下的opencv annotation这个程序,它的功能是:遍历并依次显示指定目录下的图像文件,允许用户在图像上框选矩形区域,并把这些区域坐标保存到一个本地文件中。

先准备测试素材吧。在D盘创建一个testimages文件夹,再在其中放几个图像文件。然后在Visual Studio中将opencv annotation"设为启动项目",再对这个项目执行"生成",真的是一气呵成,编译通过 o(* ̄▽ ̄*)ブ

在让程序运行起来之前,还需要给它设置命令行参数,如:-a=D:\opencv_out.txt -i=D:\testimages\。参见opencv annotation项目的属性窗口:

程序运行起来像这样:

操作方法:在图片上按下鼠标并拖动,可以框选一个区域,然后在键盘上按下C键就可以确认这个区域,接着鼠标就能继续选择更多的区域;按下D键可以删除最近一个区域;按下N键可以切换到下一个图像。程序退出后,还可以打开D:\opencv_out.txt文件看一下具体的输出内容。

至此,OpenCV在Windows上的编译任务完成!

相关推荐
如若1233 小时前
主要用于图像的颜色提取、替换以及区域修改
人工智能·opencv·计算机视觉
lsjweiyi6 小时前
极简AI工具箱网站开源啦!
opencv·开源·微信支付·支付宝支付·百度ai·极简ai工具箱·ai图像处理
Jack黄从零学c++9 小时前
opencv(c++)---自带的卷积运算filter2D以及应用
c++·人工智能·opencv
饭碗、碗碗香14 小时前
OpenCV笔记:图像去噪对比
人工智能·笔记·opencv·计算机视觉
是Dream呀1 天前
Python从0到100(七十三):Python OpenCV-OpenCV实现手势虚拟拖拽
开发语言·python·opencv
撞南墙者1 天前
OpenCV自学系列(2)——核心操作(core operations)
人工智能·opencv·计算机视觉
Bearnaise1 天前
GaussianDreamer: Fast Generation from Text to 3D Gaussians——点云论文阅读(11)
论文阅读·人工智能·python·深度学习·opencv·计算机视觉·3d
CSBLOG1 天前
OpenCV、YOLO、VOC、COCO之间的关系和区别
人工智能·opencv·yolo
qq762118222 天前
Ubuntu20.04 rk3588交叉编译opencv4.10
opencv
盘古开天16662 天前
第一讲,Opencv计算机视觉基础之计算机视觉概述
人工智能·python·opencv·计算机视觉