小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Qt編程進(jìn)階33OpenCV環(huán)境搭建詳細(xì)過(guò)程避免踩坑(一個(gè)開(kāi)源跨平臺(tái)計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù)可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上)

 山峰云繞 2023-09-12

https://www.toutiao.com/article/7277385909128626699/?log_from=ab40236bf4bd7_1694533586918


   (一個(gè)開(kāi)源跨平臺(tái)計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù)可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上)


OpenCV是一個(gè)開(kāi)源跨平臺(tái)計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù),可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量而且高效——由一系列C函數(shù)和少量C++類(lèi)構(gòu)成,同時(shí)提供了Python、Ruby、MATLAB等語(yǔ)言的接口,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法。

OpenCV中很多高級(jí)功能如人臉識(shí)別等皆包含在Contrib擴(kuò)展模塊中,要使用這些功能需要將Contrib與OpenCV一起聯(lián)合編譯。

本文詳細(xì)介紹在windows平臺(tái)下,Qt 5.14.2+OpenCV 4.5.4環(huán)境的搭建過(guò)程,親測(cè)有效。后續(xù)文章介紹基于OpenCV的圖片處理方法。

1 工具及下載

1.1 安裝CMake

CMake是用于編譯的基本工具,官網(wǎng)下載獲得最新版本的安裝包(鏈接:
https:///download/),目前版本是v3.27.4,雙擊啟動(dòng)安裝向?qū)А?/p>

其中,在“Install options”頁(yè)面中選中“Add CMake to the system PATH for all users”單選按鈕添加系統(tǒng)路徑變量??梢酝瑫r(shí)勾選“Create CMake Desktop Icon”復(fù)選框,以便在安裝完成后在桌面上創(chuàng)建CMake的快捷方式圖標(biāo)。

接下去的安裝過(guò)程很簡(jiǎn)單,跟著向?qū)У闹敢虏僮骷纯桑钡酵瓿砂惭b為止。

1.2 添加系統(tǒng)環(huán)境變量

進(jìn)入Windows系統(tǒng)環(huán)境變量設(shè)置對(duì)話(huà)框。可以看到,由于剛才的設(shè)置,CMake已經(jīng)自動(dòng)將其安裝路徑“C:\Program Files\CMake\bin”寫(xiě)入環(huán)境變量Path中。

在環(huán)境變量Path的編輯框中,進(jìn)一步添加Qt相關(guān)的路徑變量:

C:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin
C:\Qt\Qt5.14.2\5.14.2\mingw73_64\lib
C:\Qt\Qt5.14.2\Tools\mingw730_64\bin

這樣設(shè)置后,系統(tǒng)就能同時(shí)識(shí)別到Qt與CMake兩者所在的路徑。

1.3 安裝Python

由于OpenCV庫(kù)的某些功能模塊的運(yùn)行還依賴(lài)于Python平臺(tái),故編譯前還要在自己的計(jì)算機(jī)操作系統(tǒng)中安裝Python語(yǔ)言,本文安裝的是64位Python 3.8,從Python官網(wǎng)下載獲得安裝包“python-3_8.10-amd64.exe”,雙擊啟動(dòng)安裝向?qū)Ъ纯伞?/p>

1.4 下載OpenCV

可以在官網(wǎng)下載OpenCV,但其網(wǎng)絡(luò)較差,經(jīng)常無(wú)法訪(fǎng)問(wèn)。網(wǎng)上找到一個(gè)好心人建立的庫(kù)地址:
https://www./opencv/,其中包含了所有版本的opencv,下載速度非常快。

關(guān)于opencv的版本,目前最新的是4.8.0。我用其編譯,會(huì)報(bào)如下的錯(cuò)誤:

error: temporary of non-literal type 'google::protobuf::internal::CallOnceIn…

上網(wǎng)搜索了一下,發(fā)現(xiàn)原因在于Qt 5.14.2自帶的MinGW編譯器,不支持最新版本opencv中的protobuf(版本3.19)。而OpenCV 4.5.4版本中的protobuf版本是3.5.1,沒(méi)有C++語(yǔ)法的新特性,因此不會(huì)出現(xiàn)問(wèn)題。

因此,我們選擇OpenCV 4.5.4版,得到“opencv-4.5.4.zip”。

1.5 下載Contrib

OpenCV官方將己經(jīng)穩(wěn)定成熟的功能放在OpenCV包里發(fā)布,而正在發(fā)展中尚未成熟的技術(shù)則統(tǒng)一置于Contrib擴(kuò)展模塊中。通常情況下,下載的OpenCV中不包含Contrib擴(kuò)展庫(kù)的內(nèi)容,如果只是進(jìn)行一般的圖片、視頻處理,則僅使用OpenCV就足夠了。但是OpenCV中默認(rèn)不包含SIFT、SURF等先進(jìn)的圖像特征檢測(cè)技術(shù),另外一些高級(jí)功能(如人臉識(shí)別等)都在Contrib擴(kuò)展庫(kù)中,若欲充分發(fā)揮OpenCV的強(qiáng)大功能,則必須將其與Contrib擴(kuò)展庫(kù)放在一起聯(lián)合編譯使用。

選擇Contrib擴(kuò)展庫(kù)的版本必須與OpenCV的版本嚴(yán)格一致,這里選擇4.5.4版,下載得到“opencv_contrib-4.5.4.zip”。

2 編譯前準(zhǔn)備

我們使用CMake將OpenCV及其對(duì)應(yīng)的Contrib聯(lián)合編譯為可供使用的Qt庫(kù),在執(zhí)行編譯之前,還要做如下準(zhǔn)備工作。

2.1 準(zhǔn)備目錄

(1) 在D盤(pán)根目錄下新建“OpenCV\Opencv_4.5.4-Source”文件夾,將下載得到的OpenCV庫(kù)的“opencv-4.5.4.zip”包解壓,將得到的所有文件復(fù)制到該文件夾中。

(2) 在D盤(pán)根目錄下新建“OpenCV\Contrib_4.5.4-Source”文件夾,將下載得到的Contrib擴(kuò)展庫(kù)的“opencv_contrib-4.5.4.zip”包解壓,將得到的所有文件復(fù)制到該文件夾中。

(3) 在D盤(pán)根目錄下再新建一個(gè)“OpenCV\Opencv_4.5.4-Build”文件夾,用于存放編譯后生成的文件和庫(kù)。

2.2 改動(dòng)源文件

新版的OpenCV源代碼與編譯器之間存在某些不兼容之處。參考了一些內(nèi)容,對(duì)OpenCV庫(kù)的源文件進(jìn)行了修改。

(1)修改:“D:\OpenCV\Opencv_4.5.4-Source\modules\videoio\src\cap_dshow.cpp”文件,增加宏定義語(yǔ)句:#define STRSAFE_NO_DEPRECATE,修改后如下:



(2) 修改:“D:\ OpenCV\Opencv_4.5.4-Source\modules\photo\test\test_hdr.cpp”文件,增加頭文件包含“#include<ctime>”和“#include<cstdlib>”,如下所示,



3 編譯配置

經(jīng)過(guò)以上各步的前期準(zhǔn)備后,就可以正式開(kāi)始配置編譯信息了。

3.1 設(shè)置路徑

首先打開(kāi)CMake工具進(jìn)行編譯相關(guān)的配置。雙擊桌面圖標(biāo)“CMake(cmake-gui)”,啟動(dòng)CMake,出現(xiàn)CMake主界面。

單擊右上角的“Browse Source...”按鈕,選擇待編譯的源代碼路徑為“
D:/OpenCV/Opencv_4.5.4-Source”(即之前在準(zhǔn)備目錄時(shí)存放OpenCV庫(kù)源代碼的文件夾);單擊“Browse Build...”按鈕,選擇編譯生成二進(jìn)制庫(kù)文件的存放路徑為“
D:/OpenCV/Opencv_4.5.4-Build”(即在準(zhǔn)備目錄時(shí)新建的目標(biāo)文件夾)。

3.2 選擇編譯器

設(shè)置好路徑后,單擊左下角的“Configure”按鈕,彈出如下圖所示的窗口



選中“Specify native compilers”單選按鈕表示由用戶(hù)來(lái)指定本地編譯器,然后從下拉列表中選擇所用的編譯器為Qt自帶的“MinGW Makefiles”。

單擊“Next”按鈕,在彈出的如下圖所示的界面上要求用戶(hù)指定編譯器所對(duì)應(yīng)的C/C++編譯程序路徑,這里選擇C編譯程序的路徑為“
C:/Qt/Qt5.14.2/Tools/mingw730_64/bin/gcc.exe”;選擇C++編譯程序的路徑為“
C:/Qt/Qt5.14.2/Tools/mingw730_64/bin/g++.exe”。



單擊“Finish”按鈕回到CMake主界面,此時(shí)主界面上的“Configure”按鈕變?yōu)椤癝top”按鈕,右邊進(jìn)度條顯示進(jìn)度,同時(shí)下方輸出一系列信息,表示編譯器配置正在進(jìn)行中,如下圖所示




隨后,在主界面中央生成了一系列紅色加亮選項(xiàng)條的列表,同時(shí)下方信息欄中輸出“Configuring done”,表示編譯器配置完成。

3.3 設(shè)置編譯選項(xiàng)

這些紅色加亮的選項(xiàng)并非都是必須編譯的功能,在其中要確保選中“WITH_OPENGL”和“WITH_QT”這兩個(gè)編譯選項(xiàng)。同時(shí),要確保取消勾選“WITH_MSMF”編譯選項(xiàng)。



另外,為了將Contrib擴(kuò)展庫(kù)與OpenCV無(wú)縫整合,還需要設(shè)置OpenCV的外接模塊路徑,如下圖所示,從眾多的紅色加亮選項(xiàng)條中找到一個(gè)名為“OPENCV_EXTRA_MODULES_PATH”的選項(xiàng),設(shè)置其值為“
D:/OpenCV/Contrib_4.5.4-Source/modules”(即之前在準(zhǔn)備時(shí)存放Contrib源文件目錄下的“modules”子目錄)



設(shè)置完成后,再次單擊“Configure”按鈕,界面上的紅色加亮的選項(xiàng)全部消失后,點(diǎn)擊Generate按鈕,在下方信息欄中輸出“Generating done”,表示編譯選項(xiàng)全部配置完成,如圖所示。



提示:如果此時(shí)CMake主界面上仍存在紅色加亮的選項(xiàng),則表示配置過(guò)程中發(fā)生異常。解決辦法是,再次單擊“Configure”按鈕重新進(jìn)行配置,直到所有的紅色加亮的選項(xiàng)完全消失為止。

4 開(kāi)始編譯

所有的設(shè)置項(xiàng)都完成后,就可以開(kāi)始編譯了。打開(kāi)Windows命令行,進(jìn)入到事先建好的編譯生成目標(biāo)目錄“D:\OpenCV\Opencv_4.5.4-Build”下,輸入編譯命令:mingw32-make

啟動(dòng)編譯過(guò)程,如圖所示。



命令窗口中不斷地輸出編譯過(guò)程中的信息,同時(shí)顯示編譯的進(jìn)度。這個(gè)編譯過(guò)程需要等待1個(gè)小時(shí)左右,且比較耗計(jì)算機(jī)內(nèi)存。為加快編譯進(jìn)度,建議在編譯開(kāi)始前關(guān)閉系統(tǒng)中其他應(yīng)用軟件和服務(wù)。另外,由于編譯器還會(huì)聯(lián)網(wǎng)下載所需的組件,為使其工作順利,避免不必要的打擾,建議開(kāi)始編譯前就關(guān)閉殺毒軟件,同時(shí)關(guān)閉Windows防火墻

在進(jìn)度顯示100%時(shí),出現(xiàn)“Built target opencv_version_win32”信息,表示編譯成功,如下圖所示。


5 安裝OpenCV庫(kù)

編譯完成的OpenCV庫(kù)必須在安裝后才能使用,在命令行中輸入:

mingw32-make install

安裝OpenCV庫(kù),命令窗口中輸出安裝過(guò)程及進(jìn)度,安裝過(guò)程比編譯過(guò)程要快得多,很快就能安裝好。

此時(shí),打開(kāi)“D:\OpenCV\Opencv_4.5.4-Build”文件夾,可以發(fā)現(xiàn)其下己經(jīng)編譯生成了很多文件,其中有一個(gè)名為“install”的子目錄,進(jìn)入其中即“D:\OpenCV\Opencv_4.5.4-Build\install\x64\mingw\bin”文件夾中的所有文件就是編譯安裝好的OpenCV庫(kù)文件。

最后,將D:\OpenCV\Opencv_4.5.4-Build\install\x64\mingw\bin添加到系統(tǒng)環(huán)境變量PATH中。

6 測(cè)試

6.1 新建項(xiàng)目

新建Qt項(xiàng)目,類(lèi)型為Qt Widgets Application,編譯器使用MinGW 64-bit,與OpenCV庫(kù)的編譯器一致。

6.2 項(xiàng)目文件

打開(kāi)項(xiàng)目文件,添加如下語(yǔ)句:

INCLUDEPATH += D:\OpenCV\Opencv_4.5.4-Build\install\include
LIBS += D:\OpenCV\Opencv_4.5.4-Build\install\x64\mingw\lib\libopencv_*.a

6.3 程序代碼

修改mainwindows.cpp,如下

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
  ui->setupUi(this);
  Mat image=imread("D:/OpenCV/test.jpg",1); // 絕對(duì)路徑
  namedWindow("Display window",WINDOW_AUTOSIZE);
  imshow("Display window",image);
}

MainWindow::~MainWindow()
{
	delete ui;
}

6.4 編譯運(yùn)行



至此,OpenCV安裝終于完成!

————————————————

覺(jué)得有用的話(huà)請(qǐng)關(guān)注點(diǎn)贊,謝謝您的支持!

對(duì)于本系列文章相關(guān)示例完整代碼有需要的朋友,可關(guān)注并在評(píng)論區(qū)留言!

評(píng)論:

OpenCV中很多高級(jí)功能如人臉識(shí)別等皆包含在Contrib擴(kuò)展模塊中,要使用這些功能需要將Contrib與OpenCV一起聯(lián)合編譯。另外,為了將Contrib擴(kuò)展庫(kù)與OpenCV無(wú)縫整合,還需要設(shè)置OpenCV的外接模塊路徑,如下圖所示,從眾多的紅色加亮選項(xiàng)條中找到一個(gè)名為“OPENCV_EXTRA_MODULES_PATH”的選項(xiàng),設(shè)置其值為“D:/OpenCV/Contrib_4.5.4-Source/modules”(即之前在準(zhǔn)備時(shí)存放Contrib源文件目錄下的“modules”子目錄)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多