• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于PyQt5的數(shù)字圖像處理實驗平臺設計

    2021-05-19 01:42:28陸安琴秦嬋嬋胡圣波李國慶郭子義李凌云
    電子元器件與信息技術 2021年2期
    關鍵詞:圖像處理算子濾波

    陸安琴,秦嬋嬋,2*,胡圣波,2,李國慶,郭子義,2,李凌云

    (1.貴州師范大學智能信息處理研究所,貴州 貴陽 550001;2.貴州省教育廳射頻識別與傳感網(wǎng)絡工程中心,貴州 貴陽 550001;3. 華中師范大學物理科學與技術學院,湖北 武漢 430079)

    0 引言

    《數(shù)字圖像處理》是初學者學習計算機視覺和圖像處理的入門教程,是模式識別和機器視覺研究方向的核心課程。對于該門課程,教師授課難點是只能通過課本向學生講述數(shù)字圖像處理的基本原理和理論知識。學生如果只借助課本去學習,內容太抽象,對于課本中具體內容的理解還存在一定的欠缺[1-3]。

    基于上述的分析,本文開發(fā)了一個基于PyQt5的數(shù)字圖像處理實驗平臺,該實驗平臺是數(shù)字圖像處理的輔助學習工具,簡單易操作,便于學生系統(tǒng)、全面地掌握數(shù)字圖像處理的基本原理和經(jīng)典算法。實驗平臺界面分為菜單欄、工具欄、工作區(qū)和狀態(tài)欄為四個功能模塊,菜單欄是放置一些主要操作,工具欄放置一些圖像、文字等內容,細節(jié)操作和快捷操作,工作區(qū)是用于顯示,狀態(tài)欄顯示頁面提示內容。該平臺是集良好的實用性、交互性、移植性于一體,便于教學的數(shù)字圖像處理實驗平臺。

    1 實驗平臺的設計思路

    基于PyQt5的數(shù)字圖像處理實驗平臺是以《數(shù)字圖像處理》課程理論為基礎,在實驗平臺界面加入實踐教學的內容,實驗平臺系統(tǒng)架構如圖1所示。主要包括五個模塊,即邊緣檢測與分割、圖像變換、圖像濾波、圖像改善和綜合實例。該實驗平臺將課本中復雜的理論內容通過不同模塊來展示。

    2 實驗平臺的設計與實現(xiàn)

    實驗平臺包含了5個模塊的實踐教學內容,通過PyQt5中的Qt Designer來創(chuàng)建GUI主界面,在主界面創(chuàng)建一個Qmainwindow主窗口,分別在主窗口上創(chuàng)建菜單欄、工具欄、工作區(qū)、狀態(tài)欄等部件,在工作區(qū)創(chuàng)建控件QGraphicsView和QLabel,用于顯示圖片信息。窗口界面創(chuàng)建好后保存到文件夾下,會生成一個后綴為.ui的文件,然后使用pyui5將.ui轉化為.py文件。在命令行編輯指令$File Name $ -o $FileName Without Extension$.py -x,運行后就會生成一個.py的文件。然后將.py文件打包成.exe文件,用戶通過雙擊.exe程序可執(zhí)行文件,進入到實驗平臺的主界面進行相應的操作。實驗平臺GUI主界面如圖2所示:

    圖1 實驗平臺系統(tǒng)架構圖

    圖2 主界面

    2.1 功能設計

    本實驗平臺從圖像改善、圖像變換、圖像濾波、邊緣檢測與分割和綜合實例五個方面進行界面布局。每個模塊分別詳細向學生展示了圖像處理過程和結果,學生通過選擇某一模塊的功能,就會跳轉到相應的子界面,然后進行對應的操作。通過這種方式,可以幫助學生真正掌握圖像處理的內容和原理。教師通過實驗平臺的輔助,在講授理論基礎和基本原理的時候,可以通過實際操作,更直觀的向學生闡述算法處理的結果,提升教學效果和質量。

    2.1.1 圖像改善

    圖像增強[4]是將圖像中不感興趣的區(qū)域弱化,突顯出目標區(qū)域,改善圖像質量,增強識別效果。圖像增強結果如圖3所示。

    圖3 圖像增強結果

    圖像復原是將受損的圖像盡可能恢復成接近原始圖像的過程,實現(xiàn)圖像的最優(yōu)化。由于受損的圖像存在噪聲[5,6]和干擾等未知因素,所以圖像復原過程中會存在很多未知性。通過inpaint()函數(shù)實現(xiàn)圖像復原,圖4是復原的結果。

    圖4 圖像復原結果

    部分代碼如下:

    thresh=cv2.inRange(self.im, np.array([240, 240, 240]), np .array ([255, 255, 255])) #圖片二值化處理

    kernel = np.ones((3, 3), np.uint8)

    hi_mask=cv2.dilate(thresh, kernel, iterations=1)

    self.im=cv2.inpaint(self.im,hi_mask,5,flags= cv2.INPAINT_TELEA) #圖像擴張和復原

    2.1.2 圖像變換

    圖像變換是指圖像由一種狀態(tài)轉換為另一種狀態(tài)的過程,具體內容包括圖像旋轉、圖像鏡像和圖像縮放等基本內容。圖像變換可用于數(shù)據(jù)增強,制作訓練數(shù)據(jù)集和測試數(shù)據(jù)集,解決了圖片數(shù)據(jù)量不足導致圖像分割、目標追蹤等圖像處理結果準確率不高的問題。

    圖像旋轉通過將圖像以某一點為中心旋轉一定的角度,得到一張新的圖像。圖像旋轉具有的屬性是旋轉前和旋轉后的點離中心的位置不變。通過flip()函數(shù)實現(xiàn)圖像的旋轉。

    水平鏡像是選取目標圖像的垂直中軸線作為中心線,將圖像左右兩邊的圖像調換,得到一張新的圖像。垂直鏡像是選取目標圖像的水平中軸線為中心線,將圖像上下的圖像調換,得到一張新的圖像。通過transpose()函數(shù)實現(xiàn)圖像位置的調換,達到鏡像效果。

    圖像縮放是通過改變圖像的大小來進而圖像中像素的質量,滿足用戶需求。當圖像放大時,圖像中的像素的識別度也會提高;當圖像縮小時,圖像的平滑度和清晰度會增強。通過scale()函數(shù)控制圖片的縮放,調整圖圖像縮放片的大小。圖5是圖像變換的結果。

    圖5 圖像變換結果

    部分代碼如下:

    self.text11 = float(self.text1)

    M=cv2.getRotationMatrix2D((cols/2,rows/2),self.text11, 1)

    self.text33 = float(self.text3)

    sfwidth1 = sfwidth * self.text33

    sfheight1 = sfheight * self.text33

    self.re_bh_lb.resize(sfwidth1,sfheight1)

    2.1.3 圖像濾波

    圖像濾波指的是在保留目標圖像的細節(jié)特征的同時對其包含的噪聲進行處理。主要內容包括均值濾波、中值濾波和高斯濾波等。

    均值濾波是指選中某一目標像素,然后求出目標像素相鄰的像素的平均值,用該平均值來代替目標像素的值,通過blur()函數(shù)實現(xiàn)均值濾波。圖6是均值濾波結果。

    中值濾波是指求出圖像中每個像素領域的像素的中值,然后用該中代替圖像中每個像素的值通過medianBlur()函數(shù)實現(xiàn)濾波過程。

    高斯濾波是指求出圖像中每個點以及領域內其他點的像素值,然后進行加權平均,通過GaussianBlur()函數(shù)實現(xiàn)高斯濾波,圖7是高斯濾波結果。

    圖6 均值濾波結果

    部分代碼如下:

    self.text11 = float(self.text1)

    M=cv2.getRotationMatrix2D((cols/2,rows/2),self.text11, 1)

    self.text33 = float(self.text3)

    sfwidth1 = sfwidth * self.text33

    sfheight1 = sfheight * self.text33

    self.re_bh_lb.resize(sfwidth1,sfheight1)

    圖7 高斯濾波結果

    2.1.4 邊緣檢測與分割

    邊緣檢測利用不同的邊緣檢測算子實現(xiàn)對圖像邊緣的提取,所用的算子包括Robert、Sobel算子和Canny算子。通過算子將圖像中亮度對比明顯的像素點標注出來,常用edge()函數(shù)來實現(xiàn)該過程。此功能可對灰度圖像進行處理,根據(jù)不同的算子,在函數(shù)調用中分別選擇Robel、Sobel、Canny實現(xiàn)不同算子的處理結果。圖8是邊緣檢測結果。

    圖8 邊緣檢測結果

    部分代碼如下:

    img1 = cv2.imread(self.img)

    a = cv2.Sobel(img1, cv2.CV_16S, 1, 0)

    a = cv2.Sobel(img1, cv2.CV_16S, 0, 1)

    s_a = cv2.convertScaleAbs(a)

    s_b = cv2.convertScaleAbs(b)

    self.im = cv2.addWeighted(s_a, 0.5, s_b, 0.5, 0)

    自動圖像分割是指向計算機輸入算法,計算機根據(jù)算法分割出滿足約束條件的目標區(qū)域。具體包括閾值分割[7,8]、超像素分割、基于區(qū)域的分割等。圖9是閾值分割結果。

    圖9 閾值分割結果

    交互式圖像分割[9,10]是指向圖像中加入用戶交互信息,即先驗知識,幫助計算機更好地分割目標區(qū)域。實驗平臺展示了以一種基于深度學習的交互式圖像分割方法,通過融入極值點特征,將RGB圖像和極值點特征級聯(lián)輸入到神經(jīng)網(wǎng)絡,經(jīng)過神經(jīng)網(wǎng)絡進行卷積、池化等操作,提取出目標的特征,通過輸出層輸出。相對于傳統(tǒng)的自動分割方法,該方法特征提取更高效、精確、完整。圖10是交互式分割結果。

    圖10 交互式分割結果

    主要代碼如下:

    dmap=cv2.distanceTransform(tmp,cv2.DIST_L2,cv2.DIST_MASK_PRECISE)

    merge_input=np.concatenate((img3,dismap),ax is=2).

    inputs = inputs.to(device)

    outputs = net.forward(inputs)

    2.1.5 綜合案例

    車牌識別是圖像識別技術在車輛牌照識別中的關鍵技術,該技術有利于車輛管理,電子收費,車輛違章監(jiān)控,還能通過融合DSRC技術識別車輛身份,本實驗平臺首先讀取圖像數(shù)據(jù),對圖像進行濾波、二值化等預處理,然后通過OpenCV和Canny算子對預處理后的圖像進行輪廓查找,根據(jù)一些參數(shù)來判斷查找到輪廓是否為車牌輪廓。車牌識別結果如圖11、圖12所示:

    圖11 車牌識別結果

    圖12 車牌識別結果

    3 結語

    本文利用Python強大的數(shù)值計算、數(shù)據(jù)分析和圖像處理的能力,基于PyQt5設計了一款圖形用戶界面圖像處理實驗平臺,實驗平臺集成五大模塊,通過實現(xiàn)圖像改善、圖像變換、圖像濾波、邊緣檢測與分割等功能,涵蓋了數(shù)字圖像處理基礎及進階技術,并通過綜合實例闡述了本系統(tǒng)在圖像識別中的應用,使圖像處理可視化更加直觀,便捷。實驗平臺操作簡單、界面友好,具有良好的實用性、交互性、移植性。用戶可以通過自行添加模塊設置,修改對應的參數(shù),編寫回調函數(shù),即可讓實驗平臺發(fā)揮更多的功能操作,讓圖像處理更豐富多彩?,F(xiàn)今,數(shù)字圖像處理呈現(xiàn)出高靈活、廣適用、通用強、高精度的特點,應用領域涉及人類生活各個方面,通過設計這一圖像處理系統(tǒng),不僅方便教學,也為圖像領域的研究人員提供了分析和解決問題的工具。

    猜你喜歡
    圖像處理算子濾波
    擬微分算子在Hp(ω)上的有界性
    各向異性次Laplace算子和擬p-次Laplace算子的Picone恒等式及其應用
    一類Markov模算子半群與相應的算子值Dirichlet型刻畫
    機器學習在圖像處理中的應用
    電子制作(2018年18期)2018-11-14 01:48:20
    模糊圖像處理,刑事偵查利器
    圖像處理技術的實戰(zhàn)應用
    Roper-Suffridge延拓算子與Loewner鏈
    RTS平滑濾波在事后姿態(tài)確定中的應用
    基于線性正則變換的 LMS 自適應濾波
    遙測遙控(2015年2期)2015-04-23 08:15:18
    Photo Shop通道在圖像處理中的應用
    河南科技(2014年1期)2014-02-27 14:04:06
    绥化市| 长乐市| 彭水| 潢川县| 呼图壁县| 克东县| 双桥区| 遂平县| 环江| 义乌市| 濮阳市| 苗栗县| 广河县| 嘉义市| 宜阳县| 余庆县| 夹江县| 河池市| 古浪县| 吉木乃县| 玛沁县| 新蔡县| 永善县| 惠水县| 松滋市| 石门县| 邛崃市| 新郑市| 临夏县| 淅川县| 南城县| 康保县| 宜阳县| 金沙县| 邮箱| 盐亭县| 望奎县| 陵水| 锦州市| 雅江县| 营口市|