打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
QT中使用opencv历程

1、第一次下载相关代码并配置

代码网址:https://opencv.org/releases/

获得opencv-4.5.3-vc14-vc15.exe安装包。解压后,里面有x64,而没有x86,按照网上相关教程配置包含目录、库文件目录、系统路径设置。编辑出现:error: undefined reference to `cv::Mat::Mat()',查找了很多资料都没有搞定。最后发现有存在一个问题,一是vc14/15是visual c++编译器编译出来的,而QT用的是minGW,可能存在不兼容的问题。

2、第二次下载相关代码并配置

http://gitcode.net/mirrors/huihut/opencv-mingw-build?utm_source=csdn_github_accelerator

配置后仍出现error: undefined reference to `cv::Mat::Mat()',结果才意识到自己的QT平台是x86,以前配置mySQl时也遇到不同位数的库是无法使用的情况,而我下载的虽然是minGW编译的,但是x64位的,所以不能用。

3、第三次下载相关代码并配置

网址同上

解压缩后配置pro文件,有两种方式,如果熟习脚本,可以直接在该文件中写如下代码。

INCLUDEPATH += D:\OpenCV-MinGW-Build-OpenCV-4.1.0\include

LIBS += D:\OpenCV-MinGW-Build-OpenCV-4.1.0\x86\mingw\lib\libopencv_*.a         D:\OpenCV-MinGW-Build-OpenCV-4.1.0\x86\mingw\bin\libopencv_*.dll

也可以右键工程----->添加库----->外部库

选择对就的文件与目录,会自动在pro中生成相关脚本。

4、新的错误出现

本以为一切就绪,哪知编译时又出现新的错误:

错误二、D:\Qt\Qt5.9.9\Tools\mingw530_32\i686-w64-mingw32\include\winnt.h:3006: error: reference to 'ACCESS_MASK' is ambiguous       ACCESS_MASK Mask;后找到原因和解决方案:原因是使用了opencv库,调用了windows中的#include <winnt.h>造成冲突,解决办法是将using namespace cv;删除,在引用opencv成员时用加上域名空间cv::即可。

终于编译成功!但程序一闪而退!又经过查找资料发现,在将x86/mingw/bin路径添加到系统环境变量后,要重启QT,于是我重启QT,成功了!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Qt5 + opencv3.4 + window 环境搭建 笔记
OpenCV学习笔记(二十五)——OpenCV图形界面设计Qt+VS2008
opencv二维码识别解码
OpenCV&Qt学习之一
Visual studio里面的Nuget支持其他语言的模块下载安装吗
[转载]OpenCV中特征点提取和匹配的通用方法_dzh_漫漫修行路
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服