《QT 5.14.1 搭建 opencv 环境全攻略》
- 一、引言
- 二、准备工作
- (一)软件下载
- (二)系统环境确认
- 三、安装 QT 5.14.1
- (一)安装包下载与运行
- (二)环境变量配置
- 四、OpenCV 安装与配置
- (一)下载与解压
- (二)使用 CMake 生成项目文件
- (三)编译与安装
- 五、在 QT 项目中配置 OpenCV
- (一)创建 QT 项目
- (二)项目文件.pro 配置
- 六、测试环境搭建是否成功
- 七、常见问题与解决方法
- 八、总结与展望
一、引言
在当今数字化飞速发展的时代,计算机视觉技术的应用日益广泛,已然成为众多领域中不可或缺的一部分。而 OpenCV 作为一个开源的计算机视觉和机器学习软件库,更是发挥着举足轻重的作用。它涵盖了图像处理、特征提取、目标检测、运动分析、人脸识别等极为广泛的功能,从最基本的读写图片、降噪滤波、边缘检测,到复杂的行人检测、人脸识别、文本识别等,都能轻松应对。例如在视频监控领域,OpenCV 可通过识别和分析视频中的运动信息,实现实时预警、跟踪目标,提高监控系统的智能化水平;在人机交互方面,其人脸识别功能助力实现人脸解锁、智能语音助手等便捷方式;自动驾驶领域中,也依靠它的目标检测和运动分析功能保障行驶的安全与高效;甚至在医学影像分析上,能帮助医生更准确高效地诊断病情。
与此同时,QT 作为跨平台的 C++ 图形用户界面库,有着丰富的控件库以及高效的信号槽机制等诸多优势,能够帮助开发者打造出美观且易用的界面,让用户交互变得更加便捷高效。
当我们把 OpenCV 和 QT 5.14.1 结合起来时,更是能碰撞出奇妙的火花。OpenCV 负责强大的底层算法运算,QT 5.14.1 则完成上层的应用接口搭建,二者相辅相成,不仅可以简化开发流程,还能提升开发效率,拓展应用的功能与适用范围。然而,要想充分发挥它们结合的优势,首先就需要搭建好对应的开发环境。接下来,我们就详细地介绍一下 QT 5.14.1 搭建 OpenCV 环境的具体步骤,帮助大家顺利迈出开发的第一步,开启计算机视觉应用开发的精彩之旅。
二、准备工作
(一)软件下载
- QT 5.14.1:可以从 QT
官方网站(https://download.qt.io/archive/qt/5.14.1/)下载对应版本的安装包,根据操作系统选择合适的版本,如 Windows 系统下的 qt-opensource-windows-x86-5.14.1.exe。 - OpenCV:推荐使用 OpenCV 4.0 及以上版本,以获取更好的性能和更多的功能支持。从 OpenCV 官方网站(https://opencv.org/releases/)下载相应版本的源代码或预编译库,例如
opencv-4.5.0-vc14_vc15.exe(适用于 Windows 且与 Visual Studio 编译器兼容)。 - CMake:这是一个跨平台的安装工具,用于构建 OpenCV 库。可从 CMake 官方网站(https://cmake.org/download/)下载,如 cmake-3.20.0-win64-x64.msi(Windows 64 位版本)。
(二)系统环境确认
- 操作系统:确保使用的是 Windows 7 及以上版本,建议使用 Windows 10,以保证系统的稳定性和兼容性。
- 硬件配置:处理器建议选用 Intel Core i5 及以上,内存至少 4GB(推荐 8GB 或更高),硬盘空间需预留足够空间用于安装 QT、OpenCV 及相关工具,建议至少 10GB 以上可用空间,显卡最好支持 OpenGL 3.0 及以上版本,以确保良好的图形处理性能。
三、安装 QT 5.14.1
(一)安装包下载与运行
- 首先,从 QT 官方网站(https://download.qt.io/archive/qt/5.14.1/)下载 QT 5.14.1
的安装包,根据您的操作系统选择合适的版本,如 Windows 系统下的 “qt-opensource-windows-x86-5.14.1.exe”。 - 下载完成后,双击运行安装包,进入安装向导。在安装过程中,您需要按照提示逐步操作:
- 登录:如果您已有 QT 账号,可以登录;若没有账号,也可以选择跳过此步骤(在安装时断网可自动跳过登录步骤)。
- 选择同意许可协议,点击 “Next”。
- 选择安装目录:建议选择一个磁盘空间充足的位置,安装过程大约需要 3.2G 的空间。例如,您可以选择 “D:\Qt\5.14.1” 作为安装目录(具体路径可根据您的实际情况调整)。
- 选择组件:这一步非常重要,建议至少勾选 “Qt Creator”(这是 QT 的集成开发环境,方便后续开发)、“MSVC 2017 64-bit”(如果您的系统是 64 位且使用 Visual Studio 编译器)以及 “Qt Charts”“Qt Multimedia” 等常用组件,以满足不同的开发需求。当然,如果您不确定具体需要哪些组件,可以先选择默认的全部安装,后续也可以通过维护工具进行组件的添加或删除。
- 点击 “Install” 开始安装,等待安装过程完成。
(二)环境变量配置
- 安装完成后,需要将 QT 的相关路径添加到系统环境变量中,以便系统能够识别 QT 的命令和工具。以下是具体步骤:
- 在 Windows 系统中,右键点击 “此电脑”,选择 “属性”。
- 在弹出的窗口中,点击 “高级系统设置”。
- 在 “系统属性” 窗口的 “高级” 选项卡下,点击 “环境变量” 按钮。
- 在 “系统变量” 列表中,找到 “Path” 变量,点击 “编辑”。
- 在 “编辑环境变量” 窗口中,点击 “新建”,将 QT 的安装目录下的 “bin” 文件夹路径添加进去,例如 “D:\Qt\5.14.1\mingw73_64\bin”(如果您使用的是 MinGW 编译器)或
“D:\Qt\5.14.1\msvc2017_64\bin”(如果您使用的是 MSVC 编译器)。注意,这里的路径要根据您实际的安装情况进行填写。 - 依次点击 “确定” 关闭各个窗口,完成环境变量的配置。
配置完成后,您可以在命令提示符(CMD)中输入 “qmake -v” 命令来验证 QT 是否安装成功。如果成功安装,将显示 QT 的版本信息等相关内容,这表明您的系统已经能够正确识别 QT 的命令,为后续的开发工作做好了准备。
四、OpenCV 安装与配置
(一)下载与解压
- 前往 OpenCV 官方网站(https://opencv.org/releases/),依据系统及开发需求挑选合适版本的 OpenCV 进行下载,如 Windows 系统可选择 “opencv-4.5.0-vc14_vc15.exe”(此版本适用于与 Visual Studio 编译器配合使用)。
- 下载完成后,运行安装程序,在安装过程中,可将 OpenCV 解压至指定目录,例如 “D:\OpenCV\4.5.0”,以便后续操作中能便捷地找到相关文件。
(二)使用 CMake 生成项目文件
- 打开 CMake 软件,在 “Where is the source code” 一栏中选定 OpenCV 的源文件目录,即之前解压的 OpenCV 文件夹下的 “sources” 目录,例如 “D:\OpenCV\4.5.0\sources”。
- 在 “Where to build the binaries” 处指定一个用于存放编译后文件及中间文件的目录,建议新建一个文件夹,如 “D:\OpenCV\4.5.0\build”。
- 点击 “Configure” 按钮,此时会弹出一个对话框,根据您的编译器类型进行选择,如使用 Visual Studio 2019,可选择 “Visual Studio 16 2019”,并依据系统架构选择 “x64” 或 “x86”,然后点击 “Finish”。CMake 开始进行配置过程,这可能需要一些时间,期间可能会出现一些红色的错误提示,这是因为某些依赖项未找到或配置不正确。
- 配置完成后,在 CMake 的界面中,找到 “BUILD_opencv_world” 选项并勾选,它会将 OpenCV 的各个模块编译成一个单独的库文件,方便后续使用。再次点击 “Configure”,等待配置完成,直到界面中不再出现红色错误提示。
- 最后,点击 “Generate” 按钮,生成用于编译 OpenCV 的项目文件,成功后即可关闭 CMake。
(三)编译与安装
- 使用 Visual Studio 或其他您选择的编译器打开之前由 CMake 生成的项目文件,通常位于
“D:\OpenCV\4.5.0\build” 目录下,找到对应的解决方案文件(.sln)并双击打开。 - 在编译器中,将编译模式调整为 “Release”(如果您需要发布版本的库文件;如果是用于调试,则选择 “Debug” 模式),然后选择 “生成” 菜单中的 “生成解决方案” 选项,开始编译 OpenCV 库文件。编译过程可能会持续较长时间,具体时长取决于您的计算机性能。
- 编译成功后,找到 “INSTALL” 项目(通常在解决方案资源管理器中),右键点击并选择 “生成”,这将把编译好的 OpenCV 库文件、头文件以及其他相关文件安装到指定的目录下,默认安装目录为 “D:\OpenCV\4.5.0\install”(如果在 CMake 配置过程中未修改安装路径)。
至此,OpenCV 已成功安装并配置完成,接下来就可以在 QT 5.14.1 项目中使用 OpenCV 库进行开发了。
五、在 QT 项目中配置 OpenCV
(一)创建 QT 项目
- 打开 QT Creator,点击 “File” 菜单,选择 “New File or Project” 选项,弹出新建项目向导。
- 在向导中,选择 “Qt Widgets Application”(这是一个常用的基于部件的窗体 界面程序模板),点击 “Choose” 按钮。
- 接着,为项目命名(例如 “OpenCV_QT_Project”)并选择项目保存的位置(建议选择一个无中文、无空格且容易找到的路径),然后点击 “Next”。
- 在 “Kit Selection” 页面,确保选择了之前安装的 QT 5.14.1 版本对应的编译器(如 “Desktop Qt 5.14.1 MinGW 64-bit”),点击 “Next”。
- 在 “Class Information” 页面,保持默认的基类(如 “QMainWindow”),点击 “Next”,然后点击 “Finish” 完成项目创建。此时,QT Creator 会生成一个基础的项目结构,包括.pro 文件、源文件(.cpp)、头文件(.h)和界面文件(.ui)等。
(二)项目文件.pro 配置
- 在 QT Creator 的项目视图中,找到并双击打开项目的.pro 文件,在文件末尾添加以下几行代码:
# 添加OpenCV的头文件路径
INCLUDEPATH += D:/OpenCV/4.5.0/install/include
INCLUDEPATH += D:/OpenCV/4.5.0/install/include/opencv2# 添加OpenCV的库文件路径(根据实际安装路径和编译模式进行调整)
win32:CONFIG(release, debug|release):{LIBS += -LD:/OpenCV/4.5.0/install/x64/mingw/lib/LIBS += -lopencv_world450
}
else:win32:CONFIG(debug, debug|release):{LIBS += -LD:/OpenCV/4.5.0/install/x64/mingw/lib/LIBS += -lopencv_world450d
}
- 上述代码中,INCLUDEPATH 用于指定 QT 项目寻找 OpenCV 头文件的路径,确保项目能够找到 opencv.hpp 等头文件,从而正确识别和使用 OpenCV 的函数和数据结构。LIBS 则用于指定 OpenCV 库文件的路径和需要链接的库文件名,-L 表示库文件的路径,-l 表示要链接的库文件,这里的 opencv_world450(或 opencv_world450d,d 表示 debug 版本)是在 OpenCV 编译过程中生成的库文件名,它包含了 OpenCV 的各个模块,方便在项目中进行链接和使用。注意,路径中的 D:/OpenCV/4.5.0/install 应根据您实际的 penCV 安装路径进行修改,如果您使用的是其他版本的 OpenCV 或者安装路径不同,都需要相应地调整这些路径。
完成上述配置后,QT 项目就能够成功找到并使用 OpenCV 库了,接下来就可以在项目中编写代码,调用 OpenCV 的强大功能来实现各种计算机视觉任务,如图像处理、目标检测、特征提取等。例如,可以在 main.cpp 文件中添加以下代码来测试 OpenCV 是否配置成功:
#include <QApplication>
#include <opencv2/opencv.hpp>int main(int argc, char *argv[])
{QApplication a(argc, argv);// 读取一张图片(请确保路径正确)cv::Mat img = cv::imread("D:/test_image.jpg");if (img.empty()){return -1;}// 显示图片(这里使用 OpenCV 的 imshow 函数,实际应用中可将图片转换为 QT 可显示的格式进行显示)cv::imshow("Image", img);cv::waitKey(0);return a.exec();
}
这段代码使用 OpenCV 的 imread 函数读取一张图片,如果图片读取成功,则使用 imshow 函数显示该图片,并通过 waitKey 函数等待用户按键关闭窗口。如果程序能够成功运行并显示出图片,说明 QT 项目中 OpenCV 的配置已经成功,您可以继续在项目中深入开发各种计算机视觉应用。
六、测试环境搭建是否成功
以下提供一段简单的代码示例,用于测试 OpenCV 环境是否在 QT 项目中成功搭建:
#include <QApplication>
#include <opencv2/opencv.hpp>int main(int argc, char *argv[])
{QApplication a(argc, argv);// 读取一张图片(请确保路径正确)cv::Mat img = cv::imread("D:/test_image.jpg");if (img.empty()){return -1;}// 显示图片(这里使用OpenCV的imshow函数,实际应用中可将图片转换为QT可显示的格式进行显示)cv::imshow("Image", img);cv::waitKey(0);return a.exec();
}
在上述代码中,首先使用cv::imread函数尝试读取一张指定路径下的图片。如果图片读取成功,即img不为空,接着使用cv::imshow函数将图片显示出来,并通过cv::waitKey(0)等待用户按键操作,防止窗口一闪而过。若程序能够顺利运行并弹出显示图片的窗口,就表明 OpenCV 环境在 QT 项目中已经成功搭建,开发者可以在此基础上进一步利用 OpenCV 的丰富功能进行更复杂的计算机视觉任务开发,比如图像的滤波、特征提取、目标检测等;若程序运行出错,无法显示图片,则需要仔细检查之前的 OpenCV 安装和 QT 项目配置步骤,查看是否存在路径设置错误、库文件链接失败等问题。
七、常见问题与解决方法
在 QT 5.14.1 搭建 OpenCV 环境的过程中,可能会遇到各种各样的问题,以下是一些常见问题及其解决方法:
- 编译错误:
- “undefined reference to…”:这类错误通常是由于库文件链接不正确导致的。首先检查项目的.pro 文件中,OpenCV 库文件的路径和名称是否正确设置。确保LIBS变量中的路径与实际的 OpenCV 库文件路径一致,并且库文件名没有拼写错误。例如,如果在LIBS中写的是-opencv_world450,但实际安装的是opencv_world451,就会出现这种错误。此时,需要将LIBS中的库文件名修改为正确的版本号。
- “fatal error: opencv2/opencv.hpp: No such file or directory”:这表明编译器无法找到OpenCV 的头文件。需要检查INCLUDEPATH变量中是否正确设置了 OpenCV 头文件的路径。如果路径中存在中文、空格或者拼写错误,都可能导致编译器无法找到头文件。确保路径指向 OpenCV 安装目录下的include文件夹,并且该文件夹中包含opencv2文件夹和opencv.hpp等头文件。
- 链接错误:
- “error: file not recognized: File format not recognized”:此错误一般是因为penCV 编译文件版本和 QT 项目版本不匹配造成的。比如,如果 OpenCV 是用 64 位编译器编译的,而 QT 项目选择了 32 位编译器,就会出现这种情况。此时,需要确保 OpenCV 和 QT 项目的编译器版本一致,即如果 OpenCV 是 64 位的,QT 项目也应选择 64 位的编译器(如 “Desktop Qt 5.14.1 MinGW 64-bit”)。
- 环境变量问题:
- “程序运行时提示找不到 dll 文件”:这可能是因为没有将 OpenCV 的bin目录添加到系统环境变量中,或者添加后没有重新启动计算机使环境变量生效。解决方法是将 OpenCV 安装目录下的bin文件夹路径(例如 “D:\OpenCV\4.5.0\install\x64\mingw\bin”)添加到系统环境变量的 “Path” 变量中,然后重新启动计算机。
- “在 CMake 配置过程中出现关于 Python 路径的错误”:如果在 CMake 配置 OpenCV 时,出现与 Python 相关的错误,可能是因为 Python 的安装路径中含有中文。建议卸载ython,重新安装到一个无中文的路径下,并确保在安装过程中勾选了 “Add Python to PATH” 选项,将 Python 添加到系统环境变量中。
如果在搭建过程中遇到其他问题,可以仔细查看编译器的错误提示信息,通常这些信息会给出一些线索,帮助定位问题所在。同时,也可以在相关的技术论坛(如 Stack Overflow、CSDN 等)上搜索类似问题的解决方案,或者向同行请教,以解决遇到的困难,顺利完成 QT 5.14.1 与 OpenCV 环境的搭建,开启计算机视觉项目的开发之旅。
八、总结与展望
通过以上详细的步骤,我们成功搭建了 QT 5.14.1 与 OpenCV 的开发环境。这一过程虽然可能会遇到一些问题,但只要按照步骤仔细操作,并参考常见问题的解决方法,就能够顺利完成搭建,为后续的计算机视觉应用开发奠定坚实的基础。
随着技术的不断发展,计算机视觉在智能安防、自动驾驶、医疗影像分析、工业检测等众多领域的应用将越来越广泛和深入。掌握 QT 与 OpenCV 的开发技能,将为开发者打开一扇通向这些前沿领域的大门,创造出更多具有创新性和实用性的应用程序。希望读者能够在这个基础上,不断探索和实践,充分发挥自己的创造力,为推动计算机视觉技术的发展贡献自己的力量,在这个充满机遇和挑战的领域中取得丰硕的成果,开创属于自己的精彩篇章。