999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Python與OpenCV的實時圖像處理相機

2021-07-08 09:46:42張幼作郭惠婷夏清
數(shù)碼影像時代 2021年7期
關鍵詞:檢測

張幼作 郭惠婷 夏清

編者按:該項目通過運用Python開發(fā)語言在Pycharm平臺上,結合開源的OpenCv圖像處理函數(shù)庫、PySimpleGUI庫,對攝像頭所實時拍攝的圖像畫面進行采集處理。該項目可通過攝像頭實時動態(tài)查看各類圖像處理的特點并保存圖像,其中利用高斯函數(shù)、濾波處理、閾值二值化和Canny邊緣提取算法等設置控件按鈕功能,為后續(xù)自制美顏相機提供了基礎,也實現(xiàn)了使用時的方便快捷、簡單易操作。

引言

在這個網(wǎng)絡交友盛行的時期,越來越多的人會互相交換自拍照片來相互認識,運用各種美圖的手機軟件。為了解決修圖軟件來回切換的不方便性和降低像素的可能,我們打造了一個利用電腦自帶攝像頭,以Python為基礎的開發(fā)語言,結合OpenCv技術的實時動態(tài)可查看各類圖像處理效果,并實現(xiàn)拍照功能且可保存圖片的程序相機。

項目背景

如今修圖軟件在日常的使用頻率日益增多,數(shù)量也是只增不減。使用時很多功能需要切換不同軟件,很多功能也用不到,不僅浪費時間并且從一定程度上降低了照片的質(zhì)量。該項目就在是要讓使用者用最短時間拍出可直出的圖片,不需要來回切換軟件,只需設置自己平時常用的功能,大大提高了效率與照片像素。

主要技術

OpenCv

OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和機器學習軟件庫,實現(xiàn)圖像處理和計算機視覺方面的很多通用算法。應用領域廣泛,有人機互動、物體識別、運動跟蹤、圖像分割、人臉識別、機器人等等。其使用方法也簡單易懂,主要是運用Opencv庫文件,達到捕捉圖像、圖像分割和人機交互的目的。

設計GUI

圖形用戶界面,一般稱之為GUI,是實現(xiàn)人機交互的窗口。是程序設計的重要組成部分。用戶使用圖形界面時可以非常方便、直觀地進行操作處理。GUI的特點是:具有人機交互性、美觀性以及實用性。

該項目使用的是Python圖形界庫(PySimpleGUI)。相較于Tkinter、wxPython和PyQt來說PySimpleGUI創(chuàng)建GUI更加的容易,用幾行代碼就可以構建自定義GUI布局,對于初學者來說足夠容易,對于高級用戶來說也足夠強大。

GUI部分主要由攝像頭界面區(qū)域和控制按鈕區(qū)域兩部分組成,效果如圖1所示。該項目無外接硬件,攝像頭為內(nèi)置攝像頭。

高斯濾波函數(shù)

高斯濾波是一種線性平滑濾波,主要適用于消除高斯噪聲。實質(zhì)上也是一種信號的濾波器。簡單來說濾波器就是一個加了權限系數(shù)的窗口,當使用濾波器去處理圖像時,就把這個窗口放在圖像之上,透過這個窗口來看所得到的圖像,達到平滑的效果。

具體操作是:用一個用戶指定的模板去掃描圖像中的每一個像素點,用模板去確定鄰域內(nèi)像素的加權平均灰度值用來替代模板中心像素點的值,如圖2所示。

該項目設置高斯濾波矩陣長、寬都為21,標準差取values[‘blur_slider’],代碼如圖所示:

if values['blur']:

frame = cv2.GaussianBlur(frame, (21, 21),

values['blur_slider'])

閾值二值化函數(shù)

閾值是指一種效應能夠產(chǎn)生的最低值或最高值。閾值分很多種類,在該項目中運用的是PS閾值。它是基于照片亮度的一個黑白分界值,默認是50%中性灰,即128。亮度高于128會變白,低于128則變黑。

二值化就是進行圖像分割的最簡單的技術,可以把灰度圖像轉換為二值圖像。通過設定的一個閾值,把大于閾值的像素全設置為0或者255,小于閾值的像素全設置為了一個灰度,這樣就完成了對圖像的二值化處理。

該項目使用的是固定閾值法,表示根據(jù)閾值類型設置好一個閾值,然后進行二值化。代碼部分如圖所示:

if values['thresh']:

frame = cv2.cvtColor(frame, cv2.COLOR_BGR2LAB)[:, :, 0]

frame = cv2.threshold(frame, values['thresh_slider'], 255, cv2.THRESH_BINARY)[1]

調(diào)節(jié)對比度

對比度指的是一幅圖像中明暗區(qū)域最亮的白和最暗的黑之間不同亮度層級的測量,差異范圍越大代表對比越大,相反也一樣,差異范圍越小代表對比越小。使用高對比度對圖像整體像素都有很大的幫助。

本項目設定的范圍為0-255,控件默認對比度為128中間值。其中OpenCv通過‘create CLAHE()’和‘a(chǎn)pply()’函數(shù)來實現(xiàn)。代碼如下:

if values['enhance']:

enh_val = values['enhance_slider'] / 40

clahe = cv2.createCLAHE(clipLimit=enh_val, tileGridSize=(8, 8))

lab = cv2.cvtColor(frame, cv2.COLOR_BGR2LAB)

lab[:, :, 0] = clahe.apply(lab[:, :, 0])

frame = cv2.cvtColor(lab, cv2.COLOR_LAB2BGR)

Canny邊緣檢測技術

邊緣檢測[3]是從圖像中提取有用結構信息的一種技術,提取圖片的邊緣信息是底層數(shù)字圖像處理的基本任務之一。

本項目使用的是Canny邊緣檢測算法,這是一種多級邊緣檢測算法。檢測邊緣目的就在于當我們需要計算機自動提取底層或高層信息時,邊緣可以說是最直觀的一種信息了。有多種算法都可進行邊緣檢測,Canny算法雖然年代久遠,但很多邊緣檢測算法都是在此基礎上進行改進的。

Canny邊緣檢測算法的五個實現(xiàn)步驟:

1.在圖像中用高斯來平滑濾波,選用高斯濾波也是因為在眾多噪聲濾波器中,高斯去除噪聲的表現(xiàn)最好。

2.計算梯度強度和方向。(opencv中有封裝好的函數(shù),可以求圖像中每個像素點的n階導數(shù))

3.應用非最大抑制技術來消除邊誤檢。這一步需要抑制那些梯度不夠大的像素點,只保留最大的梯度,從而達到瘦邊的目的,從而得到一個更加精細的邊緣。

4.應用雙閾值篩選,即設置高閾值與低閾值。(這一步還是去除一部分梯度較小的點,使得邊緣更加精細化)

5.用滯后技術跟蹤邊界。技術原理為當邊界像素點位置的幅度值超過高閾值,就保留該像素點;當某一像素點位置的幅度值低于低閾值的話,則剔除該位置的像素點,如圖3所示。

輪廓檢測算法技術

輪廓檢測也是圖像處理中經(jīng)常用到的。該項目中,OpenCV-Python接口中使用cv2.findContours()函數(shù)來查找檢測物體的輪廓。

總的來說,輪廓檢測是物體檢測和形狀分析識別的有用工具,連接所有連續(xù)點(沿著邊界)的曲線,具有相同的顏色或強度。呈現(xiàn)效果為紅線,原底。代碼如下:

if values['contour']:

hue = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

hue = cv2.GaussianBlur(hue, (21, 21), 1)

hue = cv2.inRange(hue, np.array([values['contour_slider'], values['base_slider'], 40]),

np.array([values['contour_slider'] + 30, 255, 220]))

cnts= cv2.findContours(hue, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[0]

cv2.drawContours(frame, cnts, -1, (0, 0, 255), 2)

總結與展望

本文討論了在Pyhon語言基礎上,結合OpenCv庫,制作一個無外借硬件的實時拍照相機。用戶只要有一定的Opencv知識基礎便可自行選擇自己喜歡的功能去修改自己的代碼相機,方便快捷簡約。

雖然該項目在實時應用中滿足了實時性處理的需求,但其中還有很多需要改進的地方:

1.沒有App界面和快捷方式。如果用戶想要打開軟件,必須打開編輯器啟動相機,不夠美觀。

2.Canny算法年代久遠經(jīng)典,但運算代價相較于其他邊界算法要高,運行在實時圖像處理部分有一定困難,更適合有高精度要求的應用。

參考文獻:

[1]李杰.基于圖像處理的實時虛擬化妝及推薦方法研究[D].大連海事大學,2018.

[2]張壯.基于HLS的智能相機圖像處理底層IP核設計與實現(xiàn)[D].南京郵電大學,2019.

[3]李曉磊.基于人類視覺感知的輪廓檢測方法[D].陜西師范大學,2014.

[4]王志強.基于霍夫變換的圖像輪廓檢測方法與優(yōu)化[J].哈爾濱師范大學自然科學學報,2021,37(03):79-82.

本文受到深圳技師學院校級創(chuàng)客基金項目“現(xiàn)實虛擬-基于數(shù)字可視化+物聯(lián)網(wǎng)的虛擬空間”支持。

作者簡介:張幼作(2003—),廣東汕尾人,本科在讀,主要研究方向為通信網(wǎng)絡應用;郭惠婷(1991—),廣東梅州人,教師,碩士研究生在讀,主要研究方向為物聯(lián)網(wǎng)技術;夏清(1978—),教師,研究生,高級工程師,主要研究方向為物聯(lián)網(wǎng)、人工智能,為本文的通訊作者。

猜你喜歡
檢測
QC 檢測
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
“幾何圖形”檢測題
“角”檢測題
“有理數(shù)的乘除法”檢測題
“有理數(shù)”檢測題
“角”檢測題
“幾何圖形”檢測題
主站蜘蛛池模板: 乱色熟女综合一区二区| 小13箩利洗澡无码视频免费网站| 一级爱做片免费观看久久| 国产av无码日韩av无码网站| 亚洲男人的天堂在线| 国产XXXX做受性欧美88| 亚洲成人在线网| 99久久精彩视频| 欧美成人h精品网站| 特级毛片8级毛片免费观看| 欧美天堂久久| 91亚洲免费| 亚洲成a人片在线观看88| 欧美综合区自拍亚洲综合绿色 | 国产在线高清一级毛片| 成人综合久久综合| 久久精品免费国产大片| 婷婷激情亚洲| 欧美日韩北条麻妃一区二区| 亚洲系列中文字幕一区二区| 亚洲中文字幕无码mv| 成年av福利永久免费观看| 麻豆AV网站免费进入| 毛片久久久| 亚洲综合日韩精品| 亚洲中文字幕无码爆乳| 日本一区二区三区精品国产| 麻豆精品在线播放| 亚洲最大福利网站| 亚洲精品图区| 国产精品粉嫩| 国产a v无码专区亚洲av| av一区二区三区在线观看| 色老头综合网| 国产sm重味一区二区三区| 亚洲精品无码AV电影在线播放| 亚洲视频四区| lhav亚洲精品| 久久国产亚洲偷自| 一区二区欧美日韩高清免费| 国产无码高清视频不卡| 欧美日韩激情在线| 国产欧美亚洲精品第3页在线| 在线欧美日韩| 亚洲国产精品成人久久综合影院 | 免费中文字幕在在线不卡| 亚洲日本中文字幕乱码中文| 精品国产香蕉伊思人在线| 中文字幕在线永久在线视频2020| 伊人天堂网| 国产杨幂丝袜av在线播放| 超碰91免费人妻| 欧美福利在线观看| 国产精品网址你懂的| 99精品一区二区免费视频| 亚洲天堂视频在线观看免费| 亚洲乱伦视频| 久久免费视频播放| 欧美日韩午夜| 99视频免费观看| 国产91精品最新在线播放| 久久精品国产精品一区二区| 亚洲欧美另类色图| 蜜臀AV在线播放| 亚卅精品无码久久毛片乌克兰| 久久人搡人人玩人妻精品| 成人午夜视频网站| 成人免费网站久久久| 三上悠亚在线精品二区| 六月婷婷激情综合| 在线观看欧美精品二区| 欧美日韩动态图| 国产sm重味一区二区三区| 国产一级在线观看www色| 国产成人永久免费视频| 国产午夜一级毛片| 91精品专区国产盗摄| 特级毛片8级毛片免费观看| 欧美a在线看| аv天堂最新中文在线| 成年人免费国产视频| 亚洲成人在线免费观看|