0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于QT搭建OpenCV开发环境

OpenCV学堂 来源:OpenCV学堂 作者:OpenCV学堂 2022-10-08 09:39 次阅读

QT在Windows上安装好之后,常规会两种编译器选择分别是:

-VS2015/2017/2019....
-mingw

因为我安装了VS2015,所以一直是默认VS来编译,但是发现当从VS编译切换到mingw时候,OpenCV的windows版本就无法正确的使用了。这个时候要求首先通过mingw来编译OpenCV的源码,重新生成OpenCV库文件与dll文件。本文就详细记录了这个过程。而且最后通过编译好的OpenCV集成配置QT开发环境,实现了一个简单的测试程序。

软件版本与环境配置

版本信息

Windows10 64位
QT5.13 64位
OpenCV4.2
CMake3.17.1

下载地址:

https://opencv.org/opencv-4-2-0/ 
https://cmake.org/

环境配置

在安装好QT,CMake与OpenCV下载解压缩之后,首先到QT的目录下,找到mingw编译工具的bin目录,添加到系统环境变量中去,本人安装好的QT中mingw工具的bin目录路径如下:

D:QtQt5.13.1Toolsmingw730_64bin

编译OpenCV源码

b28b405e-4652-11ed-96c9-dac502259ad0.png    

编译OpenCV源码主要分为如下几步:

01

cmake配置与生成

双击打开安装好的cmake

b2a6bc08-4652-11ed-96c9-dac502259ad0.png

选择好souce路径与build路径,本人的分别为:

D:/opencv-4.2.0/opencv/sources
D:/opencv-4.2.0/opencv/newbuild

然后点击 【configure】,就会弹出如下对话框,请选择mingw makefiles

b2e328c8-4652-11ed-96c9-dac502259ad0.png

然后分别设置

b2fa0840-4652-11ed-96c9-dac502259ad0.png

C编译器D:QtQt5.13.1Toolsmingw730_64bingcc.exe 
C++编译器D:QtQt5.13.1Toolsmingw730_64bing++.exe

运行完成之后,参见如下选项进行配置

- 勾选 WITH_OPENGL
- 勾选 WITH_OPENMP
- 勾选 BUILD_opencv_world
- 不勾选 WITH_OPENCL_D3D11_NV

然后再点击【generate】按钮,执行完成即可。

注意

这个过程中你最有可能遇到的错误就是无法下载ffmpeg库的问题,解决方法也很容易,让可以下载的人给你下载,然后直接copy到你的opencvsources3rdpartyffmpeg目录下即可。然后再次点击【generate】按钮即可。

02

生成安装文件

cmake完成之后,打开cmd,切换到build目录下,首先执行如下的命令行参数

mingw32-make -j 8

b30d87b2-4652-11ed-96c9-dac502259ad0.png

回车之后,就看到如下开始执行了,画面如下:

b3237842-4652-11ed-96c9-dac502259ad0.png

大概5~10min左右(取决电脑速度)如果没有报错,就会到达100%完成。然后执行下一个命令行参数

mingw32-make install

大概在几十秒即可很快执行完成,执行完成之后你就会在这个目录得到编译好的库与dll文件。

D:opencv-4.2.0opencvnewbuildinstall

很直接的把生成的dll所在路径添加到环境变量中,这里为:

D:opencv-4.2.0opencvnewbuildinstallx64mingwbin

使用OpenCV+QT实现图像显示

b28b405e-4652-11ed-96c9-dac502259ad0.png    

通过一个简单的OpenCV读取图像,在QT中QLabe显示来验证上述编译好的库可以使用。直接通过QT Creator来新建一个QT Application程序,导入OpenCV库依赖(不知道怎么操作,请看结尾的链接,通过视频学习即可!),然后在mainwindow.cpp中实现如下代码:

#include"mainwindow.h"
#include"ui_mainwindow.h"
#include"opencv2/opencv.hpp"
#include"QHBoxLayout"
#include"QLabel"

MainWindow::MainWindow(QWidget*parent)
:QMainWindow(parent)
,ui(newUi::MainWindow)
{
ui->setupUi(this);
QHBoxLayout*layout=newQHBoxLayout(ui->centralwidget);
QLabel*label=newQLabel();
layout->addWidget(label);
cv::Matmat=cv::imread("D:/images/pedestrain_01.jpeg");
cv::cvtColor(mat,mat,cv::COLOR_BGR2RGB);
QImageimg=QImage(mat.data,mat.cols,mat.rows,mat.step,QImage::Format_RGB888);
intw=img.width();
inth=img.height();
if(w>800||h>800){
doublerate=800.0/std::max(w,h);
intnw=static_cast(rate*w);
intnh=static_cast(rate*h);
img=img.scaled(QSize(nw,nh),Qt::KeepAspectRatio);
}
QPixmapmp;
mp=mp.fromImage(img);
label->setPixmap(mp);
label->setAlignment(Qt::AlignCenter);
mat.release();
}

MainWindow::~MainWindow()
{
deleteui;
}

记得创建项目的选择编译器为mingw啊,然后选择构建为release。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • WINDOWS
    +关注

    关注

    3

    文章

    3440

    浏览量

    87144
  • 编译器
    +关注

    关注

    1

    文章

    1577

    浏览量

    48624
  • OpenCV
    +关注

    关注

    29

    文章

    611

    浏览量

    40786

原文标题:使用MinGW编译OpenCV4源码与配置使用演示

文章出处:【微信号:CVSCHOOL,微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Linux系统中搭建Qt Creator开发环境

    Linux开发板中配置Qt运行环境一文中介绍了如何将Qt移植到Linux开发板上,接下来就需要编写Qt
    发表于 11-29 14:06 1782次阅读

    Qt使用openCV

    使用QtOpenCV进行数字图像处理了还是很不错的,参考网上一个帖子分享一下经验:环境:Windows下的Qt4.7.0安装qt-sdk
    发表于 11-22 16:12

    请问TI提供的有可在宿主机中完整部署的OpenCVQT交叉编译开发环境没?

    ,仔细一看还想opencv居然依赖Qt5的相关库文件。这我就不太明白了,难道opencv中的highgui模块使用的是Qt'作为显示的界面编译开发
    发表于 06-21 07:54

    求源码方式搭建Qt开发环境的方法?

    请问源码方式搭建Qt开发环境的方法是什么?
    发表于 11-05 06:59

    迅为i.MX6ULL开发板-移植OpenCv2.4.9-搭建OpenCv编译环境

    终结者-开发板使用手册 4.3 章节 搭建交叉编译环境。85.2 搭建 OpenCv 编译环境
    发表于 04-29 14:48

    迅为i.MX6ULL开发板-移植OpenCv2.4.9-QT程序编译

    目录的上两级目录。2.搭建完成后。在 Ubuntu 终端执行下面的指令来使能 Qt 交叉编译的环境变量。Ubuntu# source /opt/fsl-imx-x11/4.1.15-2.1.0
    发表于 05-06 14:19

    迅为-i.MX6ULL 开发板-移植OpenCv3.4.1-搭建编译环境

    -开发板使用手册 4.3 章节 搭建交叉编译环境。86.2 搭建 OpenCV 的编译环境1.在
    发表于 08-09 10:54

    QT在嵌入式环境搭建

    ,我个人也已经使用了很长一段时间的 qt5.6 for windows ,本文就来介绍一下QT在嵌入式环境搭建。 移植以到 JZ2440 为例,使用韦老大提供的 ubuntu9.10
    发表于 12-24 07:26

    如何搭建qt开发环境

    刚收到1043的板子,然后现在需要用到qt进行程序开发,用的是你们的虚拟机ubuntu18,qt版本是5.6,请问一下如何搭建qt
    发表于 01-06 07:41

    如何搭建Qt for MCUs PC端开发环境

    如何搭建Qt for MCUs PC端开发环境
    发表于 02-10 07:48

    如何搭建RK3399 ARM QT开发环境

    如何搭建RK3399 ARM QT开发环境
    发表于 03-07 06:24

    如何搭建RK3399 ARM QT开发环境

    如何搭建RK3399 ARM QT开发环境
    发表于 03-07 06:26

    OpenCV开发环境的配置

    OpenCV3编程入门》书本配套源代码:OpenCV开发环境的配置
    发表于 06-06 15:20 8次下载

    英创信息技术Qt开发环境搭建介绍

    的Linux系统中搭建Qt应用程序的开发环境。这里采用的Linux系统为Ubuntu12.04,交叉工具链为arm-none-linux-gnueabi(版本号为4.4.1),
    的头像 发表于 01-17 09:12 1315次阅读
    英创信息技术<b class='flag-5'>Qt</b><b class='flag-5'>开发</b><b class='flag-5'>环境</b>的<b class='flag-5'>搭建</b>介绍

    Qt5环境下如何配置OpenCV

    本文档的主要内容详细介绍的是Qt5环境下如何配置OpenCV
    发表于 11-22 16:53 17次下载
    <b class='flag-5'>Qt</b>5<b class='flag-5'>环境</b>下如何配置<b class='flag-5'>OpenCV</b>