0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于QT搭建OpenCV開發(fā)環(huán)境

OpenCV學(xué)堂 ? 來源:OpenCV學(xué)堂 ? 作者:OpenCV學(xué)堂 ? 2022-10-08 09:39 ? 次閱讀

QT在Windows上安裝好之后,常規(guī)會兩種編譯器選擇分別是:

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

因?yàn)槲野惭b了VS2015,所以一直是默認(rèn)VS來編譯,但是發(fā)現(xiàn)當(dāng)從VS編譯切換到mingw時(shí)候,OpenCV的windows版本就無法正確的使用了。這個(gè)時(shí)候要求首先通過mingw來編譯OpenCV的源碼,重新生成OpenCV庫文件與dll文件。本文就詳細(xì)記錄了這個(gè)過程。而且最后通過編譯好的OpenCV集成配置QT開發(fā)環(huán)境,實(shí)現(xiàn)了一個(gè)簡單的測試程序。

軟件版本與環(huán)境配置

版本信息

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

下載地址:

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

環(huán)境配置

在安裝好QT,CMake與OpenCV下載解壓縮之后,首先到QT的目錄下,找到mingw編譯工具的bin目錄,添加到系統(tǒng)環(huán)境變量中去,本人安裝好的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

然后點(diǎn)擊 【configure】,就會彈出如下對話框,請選擇mingw makefiles

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

然后分別設(shè)置

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

C編譯器D:QtQt5.13.1Toolsmingw730_64bingcc.exe 
C++編譯器D:QtQt5.13.1Toolsmingw730_64bing++.exe

運(yùn)行完成之后,參見如下選項(xiàng)進(jìn)行配置

- 勾選 WITH_OPENGL
- 勾選 WITH_OPENMP
- 勾選 BUILD_opencv_world
- 不勾選 WITH_OPENCL_D3D11_NV

然后再點(diǎn)擊【generate】按鈕,執(zhí)行完成即可。

注意

這個(gè)過程中你最有可能遇到的錯(cuò)誤就是無法下載ffmpeg庫的問題,解決方法也很容易,讓可以下載的人給你下載,然后直接copy到你的opencvsources3rdpartyffmpeg目錄下即可。然后再次點(diǎn)擊【generate】按鈕即可。

02

生成安裝文件

cmake完成之后,打開cmd,切換到build目錄下,首先執(zhí)行如下的命令行參數(shù)

mingw32-make -j 8

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

回車之后,就看到如下開始執(zhí)行了,畫面如下:

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

大概5~10min左右(取決電腦速度)如果沒有報(bào)錯(cuò),就會到達(dá)100%完成。然后執(zhí)行下一個(gè)命令行參數(shù)

mingw32-make install

大概在幾十秒即可很快執(zhí)行完成,執(zhí)行完成之后你就會在這個(gè)目錄得到編譯好的庫與dll文件。

D:opencv-4.2.0opencvnewbuildinstall

很直接的把生成的dll所在路徑添加到環(huán)境變量中,這里為:

D:opencv-4.2.0opencvnewbuildinstallx64mingwbin

使用OpenCV+QT實(shí)現(xiàn)圖像顯示

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

通過一個(gè)簡單的OpenCV讀取圖像,在QT中QLabe顯示來驗(yàn)證上述編譯好的庫可以使用。直接通過QT Creator來新建一個(gè)QT Application程序,導(dǎo)入OpenCV庫依賴(不知道怎么操作,請看結(jié)尾的鏈接,通過視頻學(xué)習(xí)即可!),然后在mainwindow.cpp中實(shí)現(xiàn)如下代碼:

#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;
}

記得創(chuàng)建項(xiàng)目的選擇編譯器為mingw啊,然后選擇構(gòu)建為release。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • WINDOWS
    +關(guān)注

    關(guān)注

    3

    文章

    3503

    瀏覽量

    87885
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1602

    瀏覽量

    48896
  • OpenCV
    +關(guān)注

    關(guān)注

    29

    文章

    622

    瀏覽量

    41089

原文標(biāo)題:使用MinGW編譯OpenCV4源碼與配置使用演示

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Linux系統(tǒng)中搭建Qt Creator開發(fā)環(huán)境

    Linux開發(fā)板中配置Qt運(yùn)行環(huán)境一文中介紹了如何將Qt移植到Linux開發(fā)板上,接下來就需要編寫Qt
    發(fā)表于 11-29 14:06 ?2297次閱讀

    Qt使用openCV

    使用QtOpenCV進(jìn)行數(shù)字圖像處理了還是很不錯(cuò)的,參考網(wǎng)上一個(gè)帖子分享一下經(jīng)驗(yàn):環(huán)境:Windows下的Qt4.7.0安裝qt-sdk
    發(fā)表于 11-22 16:12

    請問TI提供的有可在宿主機(jī)中完整部署的OpenCVQT交叉編譯開發(fā)環(huán)境沒?

    ,仔細(xì)一看還想opencv居然依賴Qt5的相關(guān)庫文件。這我就不太明白了,難道opencv中的highgui模塊使用的是Qt'作為顯示的界面編譯開發(fā)
    發(fā)表于 06-21 07:54

    求源碼方式搭建Qt開發(fā)環(huán)境的方法?

    請問源碼方式搭建Qt開發(fā)環(huán)境的方法是什么?
    發(fā)表于 11-05 06:59

    迅為i.MX6ULL開發(fā)板-移植OpenCv2.4.9-搭建OpenCv編譯環(huán)境

    終結(jié)者-開發(fā)板使用手冊 4.3 章節(jié) 搭建交叉編譯環(huán)境。85.2 搭建 OpenCv 編譯環(huán)境
    發(fā)表于 04-29 14:48

    迅為i.MX6ULL開發(fā)板-移植OpenCv2.4.9-QT程序編譯

    目錄的上兩級目錄。2.搭建完成后。在 Ubuntu 終端執(zhí)行下面的指令來使能 Qt 交叉編譯的環(huán)境變量。Ubuntu# source /opt/fsl-imx-x11/4.1.15-2.1.0
    發(fā)表于 05-06 14:19

    迅為-i.MX6ULL 開發(fā)板-移植OpenCv3.4.1-搭建編譯環(huán)境

    -開發(fā)板使用手冊 4.3 章節(jié) 搭建交叉編譯環(huán)境。86.2 搭建 OpenCV 的編譯環(huán)境1.在
    發(fā)表于 08-09 10:54

    如何搭建qt開發(fā)環(huán)境

    剛收到1043的板子,然后現(xiàn)在需要用到qt進(jìn)行程序開發(fā),用的是你們的虛擬機(jī)ubuntu18,qt版本是5.6,請問一下如何搭建qt
    發(fā)表于 01-06 07:41

    如何搭建Qt for MCUs PC端開發(fā)環(huán)境?

    如何搭建Qt for MCUs PC端開發(fā)環(huán)境?
    發(fā)表于 02-10 07:48

    如何搭建RK3399 ARM QT開發(fā)環(huán)境

    如何搭建RK3399 ARM QT開發(fā)環(huán)境?
    發(fā)表于 03-07 06:24

    如何搭建RK3399 ARM QT開發(fā)環(huán)境?

    如何搭建RK3399 ARM QT開發(fā)環(huán)境?
    發(fā)表于 03-07 06:26

    OpenCV開發(fā)環(huán)境的配置

    OpenCV3編程入門》書本配套源代碼:OpenCV開發(fā)環(huán)境的配置
    發(fā)表于 06-06 15:20 ?8次下載

    英創(chuàng)信息技術(shù)Qt開發(fā)環(huán)境搭建介紹

    的Linux系統(tǒng)中搭建Qt應(yīng)用程序的開發(fā)環(huán)境。這里采用的Linux系統(tǒng)為Ubuntu12.04,交叉工具鏈為arm-none-linux-gnueabi(版本號為4.4.1),
    的頭像 發(fā)表于 01-17 09:12 ?1470次閱讀
    英創(chuàng)信息技術(shù)<b class='flag-5'>Qt</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b>的<b class='flag-5'>搭建</b>介紹

    Qt5環(huán)境下如何配置OpenCV

    本文檔的主要內(nèi)容詳細(xì)介紹的是Qt5環(huán)境下如何配置OpenCV
    發(fā)表于 11-22 16:53 ?17次下載
    <b class='flag-5'>Qt</b>5<b class='flag-5'>環(huán)境</b>下如何配置<b class='flag-5'>OpenCV</b>

    QT5+OpenCV4搭建應(yīng)用開發(fā)環(huán)境

    作為深度學(xué)習(xí)算法工程師,必須要掌握應(yīng)用開發(fā)技能嗎?搞工程肯定是必須要會界面開發(fā),QT就是一個(gè)很不錯(cuò)的選擇。本文以QT5.15 + OpenCV
    的頭像 發(fā)表于 07-23 11:23 ?491次閱讀
    <b class='flag-5'>QT5+OpenCV</b>4<b class='flag-5'>搭建</b>應(yīng)用<b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b>