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

本文详细介绍了OpenCV的两种安装方式:本地直接安装和使用CMake编译源码。本地安装适合初学者,只需下载安装包并选择路径即可;源码编译则适用于需要自定义配置的用户,需使用CMake工具指定源码路径和生成选项。文章还提供了Qt搭配MSVC版本OpenCV的配置方法,包括路径添加和库文件引用。两种方式最终都会生成包含头文件和库文件的OpenCV开发环境,供后续项目使用。

作者
WildPointer
发布
2025.11.30
专栏
深入浅出OpenCV
阅读
约 7 分钟 / 1,402 次原文浏览
深入浅出OpenCV:编译并使用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/includewin32-msvc:LIBS += -LE:/SummaryLib/OpenCV4.12.0_MSVC_Win/opencv/build/x64/vc16/libwin32-msvc:LIBS += -LE:/SummaryLib/OpenCVBuild/install/x64/vc17/libwin32-msvc:CONFIG(release, debug|release): LIBS += -lopencv_world4120win32-msvc:CONFIG(debug, debug|release): LIBS += -lopencv_world4120dwin32-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

22次原文点赞;这里的喜欢仅保存在本机
WildPointer

专注系统编程、工程实践与底层技术,记录 C++、Qt、OpenCV 与 VTK 的学习和实践。