国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ARM 和QT 聯(lián)合OpenCV 的快速圖像處理應(yīng)用

2023-10-18 12:43黃鵬飛
科學(xué)技術(shù)創(chuàng)新 2023年24期
關(guān)鍵詞:開發(fā)板觸摸屏圖像處理

楊 睿,黃鵬飛

(西京學(xué)院機械工程學(xué)院,陜西西安)

引言

隨著科技的發(fā)展和嵌入式設(shè)備的廣泛應(yīng)用,圖像處理在嵌入式系統(tǒng)中扮演著越來越重要的角色。在這些嵌入式系統(tǒng)中,高速、高效的圖像處理能力對于實時應(yīng)用和用戶體驗至關(guān)重要。ARM 架構(gòu)作為一種低功耗、高性能且可定制的處理器架構(gòu),以其在嵌入式領(lǐng)域的廣泛應(yīng)用而聞名。OpenCV 作為一個強大的開源計算機視覺庫,提供了豐富的圖像處理函數(shù)和算法,廣泛用于計算機視覺和機器學(xué)習(xí)領(lǐng)域。通過結(jié)合ARM和OpenCV,我們可以實現(xiàn)快速且高效的圖像處理應(yīng)用。ARM的并行計算能力和OpenCV 庫的優(yōu)化功能相互補充,為嵌入式設(shè)備提供了強大的圖像處理能力。此外,QT 作為一個流行的圖形用戶界面開發(fā)框架,為我們提供了方便而強大的界面設(shè)計工具,使得用戶能夠直觀地操作和觀察圖像處理效果。本文將重點探討基于ARM 和QT 聯(lián)合OpenCV 的快速圖像處理。我們將研究如何利用ARM處理器的優(yōu)勢,結(jié)合OpenCV 提供的圖像處理算法和函數(shù),實現(xiàn)快速而準確的圖像分析、特征提取和圖像增強等功能。我們還將介紹如何利用QT 開發(fā)界面,實現(xiàn)用戶友好的圖像處理應(yīng)用程序,使用戶能夠方便地調(diào)整參數(shù)、實時顯示處理結(jié)果,并將這些功能應(yīng)用于實際的圖像處理應(yīng)用中。通過本文的研究和實踐,我們期望能夠進一步提高嵌入式系統(tǒng)中圖像處理的效率和性能,為用戶提供更好的圖像處理體驗。同時,探索出更多基于ARM和OpenCV 的創(chuàng)新應(yīng)用,拓寬圖像處理在嵌入式系統(tǒng)中的應(yīng)用領(lǐng)域。

1 系統(tǒng)概述

本系統(tǒng)的主要硬件為搭載Linux 系統(tǒng)的ARM 開發(fā)板和高清觸摸屏,上位機開發(fā)使用QtCreate,使用OpenCV作為圖像處理庫。開發(fā)平臺為ubuntu18.04,由于硬件是ARM架構(gòu),默認為X86 的編譯器,因此在實際開發(fā)過程需要交叉編譯,首先需要安裝交叉編譯工具鏈以便后續(xù)的開發(fā)工作[1],本項目采用的版本為:gcclinaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf。

系統(tǒng)搭建架構(gòu)如圖1 所示。

圖1 系統(tǒng)架構(gòu)

屏幕系統(tǒng):為確保高清觸摸屏的正常使用,需要交叉編譯Tslib(Tslib 是一個用于嵌入式Linux 系統(tǒng)上的觸摸屏輸入設(shè)備驅(qū)動庫。它提供了一系列的API 函數(shù),用于處理觸摸屏輸入事件,包括觸摸點的坐標、壓力等信息),Tslib 的主要代碼和系統(tǒng)框架如表1 和圖2 所示。

表1 Tslib 主要代碼

圖2 Tslib 框架

Tslib 框架圖解(圖2 左):上面的模塊遞歸調(diào)用下面的模塊獲得數(shù)據(jù),并處理數(shù)據(jù),ts_read 使用模塊中的read 函數(shù);ts_read_mt 使用模塊中的read_mt 函數(shù)。

1.優(yōu)先打開環(huán)境變量TSLIB_TSDEVICE 指定的設(shè)備。

2.如果沒有這個環(huán)境變量,嘗試打開:

3.如果失敗掃描"/dev/input"下的設(shè)備節(jié)點。

4.成功后得到一個tsdev 的結(jié)構(gòu)體。

Tslib 框架圖解(圖2 右):

1.優(yōu)先打開環(huán)境變量TSLIB_TSDEVICE 指定的配置文件。

2.如果沒有這個環(huán)境變量,嘗試打開:/etc/ts.conf。

3.根據(jù)配置文件讀入各類"module"

4./etc/ts.config 示例:

5.成功后,tsdev 結(jié)構(gòu)體list 鏈表執(zhí)行各個module。

根據(jù)以上代碼和框架對Tslib 進行交叉編譯和觸摸屏測試,掛載NFS(Network File System 是一種在網(wǎng)絡(luò)上共享文件系統(tǒng)的協(xié)議。它允許一臺計算機通過網(wǎng)絡(luò)訪問其他計算機上的文件,就像訪問本地文件一樣),把交叉編譯生成的lib,bin,etc 文件通過網(wǎng)絡(luò)文件系統(tǒng)分別拷貝到ARM開發(fā)板的lib/,bin/,etc/目錄下,然后在單板上執(zhí)行測試程序ts_test_mt。

2 項目準備

2.1 搭建OpenCV 3.4.1 的編譯環(huán)境

進入新建立的build 目錄(cd build)里執(zhí)行指令cmake-gui,開始配置OpenCV 的環(huán)境。進入圖形化工具cmake-gui[2]:

1.指定源碼的所在路徑和構(gòu)建目錄,修改成個人的路徑;

2.指定交叉編譯器的路徑;

3.指定安裝路徑;

如圖3 所示。

圖3 圖形化工具cmake-gui

完成配置后make 編譯源碼,make install 安裝在所創(chuàng)建的install 目錄,至此完成OpenCV 的編譯。將當(dāng)前目錄下的lib 文件夾下的內(nèi)容拷貝到文件系統(tǒng)/usr/lib 下即可。

2.2 QT 上位機界面定制

界面以QT 提供的mainwindow 為框架,C++語言進行編輯以及進行OpenCV庫函數(shù)的調(diào)用[3],主要實現(xiàn)圖像處理功能按鈕名稱,以各功能函數(shù)名如表2 所示。

表2 按鈕名稱以及函數(shù)名

完成的mainwindow界面如圖4 所示。

圖4 完成的mainwindow 界面

2.3 在Qt 項目中加入OpenCV

打開Qt 項目的pro 文件,在里面添加如下內(nèi)容。

修改.pro 文件如圖5 所示。

圖5 修改.pro 文件

3 項目實現(xiàn)

拷貝install/lib 文件夾下的OpenCV相關(guān)庫拷貝到開發(fā)板的/lib 目錄下[4]。在串口終端里直接執(zhí)行QOpenCV Qt 應(yīng)用程序(./QOpenCV)??捎^察到顯示屏上已經(jīng)出現(xiàn)QT 程序的示例。以跑車圖片為例,點擊邊緣檢測,可以看到案例圖片已經(jīng)被線條勾勒了。此外還有灰度化、閾值化、腐蝕、模糊、銳化等。如圖6 所示,圖片處理速度迅速,功能使用方便,可定制性強。

圖6 圖片處理結(jié)果

結(jié)束語

此例程通過將OpenCV 和QT 移植到ARM架構(gòu)的開發(fā)板,在設(shè)備上進行無依賴遠程服務(wù)器或云端計算的情況下進行實時的圖像處理任務(wù)。這在許多場景下都具有重要意義。ARM架構(gòu)的高性能和低功耗特性使得在開發(fā)板上運行OpenCV 的圖像處理算法更加高效和節(jié)能。這意味著可以更加容易實現(xiàn)圖像分析、物體檢測、特征提取和圖像識別等應(yīng)用,并且利用其可移植性和方便定制的特性,可以為用戶帶來更好的體驗和功能。然而,移植OpenCV 到ARM開發(fā)板也會帶來諸多問題,包括適配和編譯的復(fù)雜性、資源限制和性能優(yōu)化等。在進行移植過程中,需要仔細配置編譯環(huán)境、處理依賴項和測試功能,以確保OpenCV 在ARM架構(gòu)上正常運行[5]。隨著ARM架構(gòu)和OpenCV 的不斷發(fā)展嵌入式系統(tǒng)和計算機視覺技術(shù)的不斷進步,智能化的應(yīng)用和設(shè)備將會不斷為用戶帶來更多便捷的體驗。

猜你喜歡
開發(fā)板觸摸屏圖像處理
PLC和觸摸屏在衛(wèi)生間控制系統(tǒng)的應(yīng)用
基于圖像處理的機器人精確抓取的設(shè)計與實現(xiàn)
機器學(xué)習(xí)在圖像處理中的應(yīng)用
皮膚“長”出觸摸屏
Microchip最新推出兩款PIC32 Curiosity開發(fā)板
淺析單片機開發(fā)板的設(shè)計與制作
基于圖像處理的定位器坡度計算
Mouser為您呈上開發(fā)關(guān)鍵之STMicroelectronics Nucleo開發(fā)板
Arduino和Atmel發(fā)布Arduino Zero開發(fā)板
投射式多點觸控電容觸摸屏