深入浅出OpenCV:编译并使用OpenCV

目录

1.下载OpenCV

2.安装OpenCV

3.使用CMake编译OpenCV

4.搭配Qt使用OpenCV


前言

本篇博客主要讲解的是编译并使用OpenCV。OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,由Intel公司于1999年发起开发,并于2000年首次发布。它由一系列C函数和少量C++类构成,实现了图像处理和计算机视觉方面的众多通用算法。


下载OpenCV

OpenCV的官方链接如下:

OpenCV官网https://opencv.org/releases/

除此之外我们还可以直接访问OpenCV在GitHub的仓库,本例子就不再进行讲解。而由于现在的OpenCV支持本地安装配置环境和使用CMake编译源码的两种方式,所以本篇博客将对这两种方式都进行讲解,对于刚刚入门学习OpenCV的读者可以直接参考本地安装的过程就像,而对于在使用OpenCV有配置要求的读者则可以参考使用CMake编译源码的方式进行配置。具体在官网的下载版本信息如下(Sources是源码编译,Windows是直接安装):

图1.下载OpenCV

由于后续会使用到CMake,具体还没有下载CMake的读者可以参考以下链接:
《高效工具实战指南:CMake构建工具》https://blog.csdn.net/weixin_67035108/article/details/155361963?spm=1001.2014.3001.5501


安装OpenCV

本小节主要讲解如何安装OpenCV,即使用最简单的本地安装进行讲解。在我们下载好文件后双击该文件,即可弹出安装界面。在安装界面中我们需要选择OpenCV安装路径。

图2.选择OpenCV安装路径

选择安装路径以后,我们只需要等待下载完成即可。

图3.等待下载完成

下载完成后,我们可以在刚刚的指定的安装路径下找到相关文件。其中include文件夹是我们后续使用OpenCV需要导入的头文件,而x64文件夹中的bin文件夹和lib文件夹则是我们需要导入的动态链接库和静态链接库的路径

图4.直接安装OpenCV成功


使用CMake编译OpenCV

本小节主要讲解的是如何使用CMake构建工具编译OpenCV,这部分主要适用于需要手动配置OpenCV的读者,如果是初学者只需要参考安装OpenCV小节的内容即可

我们打开CMake,在Whers is hte source cod文本框中输入下载的OpenCV源码位置,在 Where to buiild the binaries文本框中输入构建后的文件保存路径。博主是创建了一个OpenCVBuild文件夹进行保存,读者可以自己创建一个,选择好路径后再点击Configure按钮即可进行构建。

PS:源码路径下必须得有一个CMakLists文件,才能正确的识别并进行构建。

图5.设置CMake中文件路径

我们点击Configure按钮以后,需要选择生成工具以及位数。此处博主选择的是Visual Studio 17 2022和64位进行构建。选择好后点击Finish按钮即可。

图6.选择生成工具和位数

点击Finish按钮后,我们只需要等待构建进度完成即可。

图7.等待构建

构建完成以后会显示很多可进行调整的选项以及路径,对此哪些是必选项哪些是可选项以及博主有哪些建议调整的,可以参考下表进行选择:

类别 选项名称 建议操作 勾选的意义与说明
建议勾选 WITH_OPENGL 勾选 启用OpenGL支持。让imshow()等图像显示窗口使用硬件加速,在显示高分辨率图像或视频时更流畅
建议勾选 WITH_PNG 勾选 启用PNG图像格式支持。这是最常用的无损图像格式之一,必须支持
建议勾选 WITH_TIFF 勾选 启用TIFF图像格式支持。常用于专业图像处理和印刷领域
建议勾选 WITH_WEBP 勾选 启用WebP图像格式支持。这是一种现代的高压缩率图片格式
建议勾选 WITH_OPENJPEG 勾选 启用更好的JPEG 2000图像格式支持
按需勾选 WITH_OPENMP 建议勾选 启用OpenMP支持。实现多线程并行计算,能提升许多算法的处理速度。如果您的编译器(如Visual Studio)支持,建议开启
按需勾选 WITH_TBB 二选一 启用Intel TBB库支持,另一种高效的并行编程模型。与OpenMP功能类似,通常与OpenMP二选一即可
按需勾选 WITH_QT 按需 启用Qt支持。如果勾选,OpenCV的高级GUI窗口将使用Qt后端,功能更丰富(自带按钮、滑动条等)。适合开发带复杂界面的应用,需要提前安装Qt
按需勾选 WITH_VULKAN 按需 启用Vulkan支持。用于跨平台的GPU加速计算。仅在进行高性能计算或图形学研究时需要考虑
按需勾选 WITH_OPENNI2 按需 启用对OpenNI 2兼容的深度摄像头(如微软Kinect)的支持。只有连接了此类设备时才需要

表1.选项参考表

当我们设置完选项后点击Configure按钮即可。

图8.指定构建

如果选择了编译QT等其他选项,可能还需要指定Qt的路径。这里是CMake通过PATH检索到的QT路径,并不是QTCreator所在的的路径,如果有需要可以自行调整Qt的路径。

图9.调整相关路径

调整好路径以后,继续点击Configure按钮进行构建。等待构建结束看到Configuring done相关的文字代表以及构建成功。

图10.构建成功

构建成功以后,我们需要点击Generate按钮进行生成。可能有些读者电脑不存在例如ffmpeg等库,这时候CMake会从指示的链接中进行下载,这一步会比较耗时但是等待下载完成即可。

图11.等待下载相关库

构建完成以后,我们点击Generate按钮进行生成。当看到Generating done相关的文字的时候代表已经生成成功。

图12.点击Generate按钮生成

生成成功后,我们可以在刚刚指定的保存构建相关的路径下看到生成的文件。此处我们双击生成的后缀为sln文件以Visual Studio打开即可。

图13.以Visual Studio打开生成的sln文件

打开后我们需要选择编译的类型,此处博主是以Release x64进行编译,可以参考下图的左上角进行调整。而在右侧解决方案资源管理器中,我们右键ALL_BUILD然后点击生成,对整个项目进行构建并生成。

图14.右键ALL_BUILD点击生成

当生成完毕,我们再右健INSTALL后再点击生成。

图15.右健INSTALL点击生成

当我们看到生成成功相关字样后即代表OpenCV已经编译成功,可以开始使用了。

图16.编译OpenCV成功

编译成功后我们可以在保存构建相关文件的路径下找到install文件夹,该文件夹下保存的文件就是使用Visual Studio生成的最终文件。

图17.生成的最终文件路径


搭配Qt使用OpenCV

本篇博客中安装OpenCV和使用CMake编译OpenCV都是生成的MSVC的版本,所以Qt的构建工具也得是MSVC,具体的MinGW版本和MSVC并不通用,所以需要生成MinGW版本的OpenCV可以使用CMake进行生成。

本例子使用的是Qt6进行编写的,系统环境为Windows 64位,使用的是qmake构建,所以需要在生成的pro文件中添加OpenCV的路径,具体如下:

bash 复制代码
INCLUDEPATH += E:/SummaryLib/OpenCV4.12.0_MSVC_Win/opencv/build/include
win32-msvc:LIBS += -LE:/SummaryLib/OpenCV4.12.0_MSVC_Win/opencv/build/x64/vc16/lib
win32-msvc:LIBS += -LE:/SummaryLib/OpenCVBuild/install/x64/vc17/lib
win32-msvc:CONFIG(release, debug|release): LIBS += -lopencv_world4120
win32-msvc:CONFIG(debug, debug|release): LIBS += -lopencv_world4120d
win32-msvc:QMAKE_POST_LINK += $$quote(cmd /c if exist "E:\\SummaryLib\\OpenCV4.12.0_MSVC_Win\\opencv\\build\\x64\\vc16\\bin\\opencv_world4120.dll" copy /Y "E:\\SummaryLib\\OpenCV4.12.0_MSVC_Win\\opencv\\build\\x64\\vc16\\bin\\opencv_world4120.dll" "$$OUT_PWD\\")
win32-msvc:QMAKE_POST_LINK += $$quote(cmd /c if exist "E:\\SummaryLib\\OpenCV4.12.0_MSVC_Win\\opencv\\build\\x64\\vc16\\bin\\opencv_world4120d.dll" copy /Y "E:\\SummaryLib\\OpenCV4.12.0_MSVC_Win\\opencv\\build\\x64\\vc16\\bin\\opencv_world4120d.dll" "$$OUT_PWD\\")

如果不太理解的也可以直接在GitHub下载示例:
OpenCV测试示例以及库https://github.com/3020Xmy/OpenCVTest

相关推荐
却道天凉_好个秋44 分钟前
OpenCV(三十五):黑帽操作与顶帽操作
人工智能·opencv·计算机视觉
money053444 分钟前
pytorch自定义backend
人工智能·pytorch·python
人工智能训练1 小时前
跨架构突围!X86 Ubuntu Dify 无缝迁移 Arm64 openEuler Docker 实战指南
人工智能·ubuntu·docker·容器·架构·arm64·dify
还不秃顶的计科生1 小时前
AI生成ppt工具包大全
人工智能
deephub1 小时前
BipedalWalker实战:SAC算法如何让机器人学会稳定行走
人工智能·机器学习·机器人·强化学习
IT_陈寒1 小时前
3个90%开发者都误解的JavaScript原型陷阱:从proto到class的深度剖析
前端·人工智能·后端
23遇见1 小时前
AI与贫富差距:是平衡秤还是分水岭?
人工智能
学术小白人1 小时前
第一轮征稿!2026年区块链技术与基础模型国际学术会议(BTFM 2026)
人工智能·计算机·区块链·艺术·工程·rdlink研发家
LCG米1 小时前
Armv9 Cortex-A320边缘计算平台初体验:运行10亿参数模型的可能性探索
人工智能·边缘计算