当前位置: 首页 > ops >正文

11.OpenCV—联合QT环境配置

1.QT环境变量配置

在Qt中配置OpenCV 3.4.6与Visual Studio 2017的步骤如下:

一、前期准备

  1. 安装组件验证

  • 确认已安装Qt的MSVC2017版本(如Qt 5.12+ MSVC2017 64-bit)

  • 检查Visual Studio 2017的MSVC编译器是否正常工作

  1. OpenCV库准备

  • 从官网下载预编译包:选择opencv-3.4.6-vc14_vc15.exe(vc15对应VS2017)

  • 解压到无空格路径(例如D:\Libs\opencv346

二、环境变量配置

  1. 添加系统变量:

Path += D:\Libs\opencv346\build\x64\vc15\bin

三、Qt项目配置(.pro文件)

# 包含路径(根据实际路径修改)
INCLUDEPATH += D:/Libs/opencv346/build/includeD:/Libs/opencv346/build/include/opencv2
​
# 库路径
win32 {CONFIG(debug, debug|release) {# Debug模式LIBS += -LD:/Libs/opencv346/build/x64/vc15/lib \-lopencv_world346d} else {# Release模式LIBS += -LD:/Libs/opencv346/build/x64/vc15/lib \-lopencv_world346}
}
#相对路径# 包含路径(根据实际路径修改)
INCLUDEPATH += $$PWD/src/opencv/opencv/build/include
INCLUDEPATH += $$PWD/src/opencv/opencv/build/include/opencv2# 库路径# Release模式LIBS += -L$$PWD/src/opencv/opencv/build/x64/vc15/lib  -lopencv_world346

四、DLL文件处理

将以下文件复制到exe输出目录:

  • opencv_world346.dll(Release版)

  • opencv_world346d.dll(Debug版) 位于:opencv\build\x64\vc15\bin

五、验证测试代码

#include <QDebug>
#include <opencv2/opencv.hpp>
​
void testOpenCV()
{cv::Mat img = cv::imread("test.jpg");if(!img.empty()) {qDebug() << "OpenCV配置成功!图像尺寸:" << img.cols << "x" << img.rows;cv::imshow("Display", img);cv::waitKey(0);} else {qDebug() << "加载图片失败!";}
}

常见问题解决

  1. 链接错误 LNK2019

  • 检查库文件路径是否正确

  • 确认Debug/Release模式匹配(d后缀版用于Debug)

  1. 运行时缺失DLL

  • 确保环境变量生效(可能需要重启Qt Creator)

  • 检查exe目录是否包含所需DLL

  1. 头文件找不到

  • 验证INCLUDEPATH中的斜杠方向(建议使用/代替\

  • 检查OpenCV版本号是否匹配(346对应3.4.6)

建议使用CMake管理项目时,可通过find_package(OpenCV REQUIRED)自动配置路径。

当前路径
# 包含路径(根据实际路径修改)
INCLUDEPATH += $$PWD/includeINCLUDEPATH += $$PWD/include/opencv2
​
# 库路径
​# Release模式LIBS += -L$$PWD/lib/ -lopencv_world346

http://www.xdnf.cn/news/14317.html

相关文章:

  • RTDETRv2 pytorch 官方版自己数据集训练遇到的问题解决
  • 正整数的正向分解
  • 股指期货的多空策略是什么?
  • 编译链接实战(30)strip移除了哪些内容
  • java设计模式[3]之结构性型模式
  • Druid 连接池详解
  • 基于CSO算法的任务卸载在IoT移动边缘计算
  • 绝对收敛 趋于 0 的速度足够快 | 条件收敛 --> 项趋于 0 正负项相互抵消
  • 语言模型的泛化能力和训练数据依赖性
  • Docker -- 快速入门
  • JavaScript 数据结构详解
  • Java垃圾回收机制
  • [NLP]课程期末知识点总结
  • [windows工具]PDFOCR识别导出Excel工具1.1版本使用教程及注意事项
  • 【JVM】- 类加载与字节码结构3
  • 性能优化 - 高级进阶:JVM 常见优化参数
  • Linux内核网络协议的双重注册机制:inet_add_protocol与inet_register_protosw深度解析
  • Python小酷库系列:Python中的JSON工具库(3)
  • 行为设计模式之State(状态)设计模式
  • java中常见的排序算法设计介绍
  • IDEA21中文乱码解决办法
  • ubuntu 22.04设置时区和24小时制显示——筑梦之路
  • 【详细】CUDA开发学习教程清单
  • 【深度解析】Java高级并发模式与实践:从ThreadLocal到无锁编程,全面避坑指南!
  • Arcgis中,toolbox工具箱中工具莫名报错的解决方法
  • 【速写】policy与reward分词器冲突问题(附XAI阅读推荐)
  • LeetCode--31.下一个排列
  • 行为设计模式之Strategy(策略)
  • 网络编程(HTTP协议)
  • ShenNiusModularity项目源码学习(34:总结)