




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第Python+OpenCV六種實(shí)時(shí)圖像處理詳細(xì)講解目錄1、導(dǎo)入庫(kù)文件2、設(shè)計(jì)GUI3、調(diào)用攝像頭4、實(shí)時(shí)圖像處理4.1、閾值二值化4.2、邊緣檢測(cè)4.3、輪廓檢測(cè)4.4、高斯濾波4.5、色彩轉(zhuǎn)換4.6、調(diào)節(jié)對(duì)比度5、退出系統(tǒng)初學(xué)OpenCV圖像處理的小伙伴肯定對(duì)什么高斯函數(shù)、濾波處理、閾值二值化等特性非常頭疼,這里給各位分享一個(gè)小項(xiàng)目,可通過(guò)攝像頭實(shí)時(shí)動(dòng)態(tài)查看各類圖像處理的特點(diǎn),也可對(duì)各位調(diào)參、測(cè)試有一定幫助。
1、導(dǎo)入庫(kù)文件
這里主要使用PySimpleGUI、cv2和numpy庫(kù)文件,PySimpleGUI庫(kù)文件實(shí)現(xiàn)GUI可視化,cv2庫(kù)文件是Python的OpenCV接口文件,numpy庫(kù)文件實(shí)現(xiàn)數(shù)值的轉(zhuǎn)換和運(yùn)算,均可通過(guò)pip導(dǎo)入。
importPySimpleGUIassg#pipinstallpysimplegui
importcv2#pipinstallopencv-python
importnumpyasnp#pipinstallnumpy
2、設(shè)計(jì)GUI
基于PySimpleGUI庫(kù)文件實(shí)現(xiàn)GUI設(shè)計(jì),本項(xiàng)目界面設(shè)計(jì)較為簡(jiǎn)單,設(shè)計(jì)800X400尺寸大小的框圖,淺綠色背景,主要由攝像頭界面區(qū)域和控制按鈕區(qū)域兩部分組成。效果如下所示:
GUI代碼如下所示:
#背景色
sg.theme('LightGreen')
#定義窗口布局
layout=[
[sg.Image(filename='',key='image')],
[sg.Radio('None','Radio',True,size=(10,1))],
[sg.Radio('threshold','Radio',size=(10,1),key='thresh'),
sg.Slider((0,255),128,1,orientation='h',size=(40,15),key='thresh_slider')],
[sg.Radio('canny','Radio',size=(10,1),key='canny'),
sg.Slider((0,255),128,1,orientation='h',size=(20,15),key='canny_slider_a'),
sg.Slider((0,255),128,1,orientation='h',size=(20,15),key='canny_slider_b')],
[sg.Radio('contour','Radio',size=(10,1),key='contour'),
sg.Slider((0,255),128,1,orientation='h',size=(20,15),key='contour_slider'),
sg.Slider((0,255),80,1,orientation='h',size=(20,15),key='base_slider')],
[sg.Radio('blur','Radio',size=(10,1),key='blur'),
sg.Slider((1,11),1,1,orientation='h',size=(40,15),key='blur_slider')],
[sg.Radio('hue','Radio',size=(10,1),key='hue'),
sg.Slider((0,225),0,1,orientation='h',size=(40,15),key='hue_slider')],
[sg.Radio('enhance','Radio',size=(10,1),key='enhance'),
sg.Slider((1,255),128,1,orientation='h',size=(40,15),key='enhance_slider')],
[sg.Button('Exit',size=(10,1))]
#窗口設(shè)計(jì)
window=sg.Window('OpenCV實(shí)時(shí)圖像處理',
layout,
location=(800,400),
finalize=True)
3、調(diào)用攝像頭
打開(kāi)電腦內(nèi)置攝像頭,將數(shù)據(jù)顯示在GUI界面上,效果如下所示:
代碼如下所示:
#打開(kāi)內(nèi)置攝像頭
cap=cv2.VideoCapture(0)
whileTrue:
event,values=window.read(timeout=0,timeout_key='timeout')
#實(shí)時(shí)讀取圖像
ret,frame=cap.read()
#GUI實(shí)時(shí)更新
imgbytes=cv2.imencode('.png',frame)[1].tobytes()
window['image'].update(data=imgbytes)
window.close()
4、實(shí)時(shí)圖像處理
4.1、閾值二值化
進(jìn)行閾值二值化操作,大于閾值values['thresh_slider']的,使用255表示,小于閾值values['thresh_slider']的,使用0表示,效果如下所示:
代碼如下所示:
ifvalues['thresh']:
frame=cv2.cvtColor(frame,cv2.COLOR_BGR2LAB)[:,:,0]
frame=cv2.threshold(frame,values['thresh_slider'],255,cv2.THRESH_BINARY)[1]
4.2、邊緣檢測(cè)
進(jìn)行邊緣檢測(cè),values['canny_slider_a']表示最小閾值,values['canny_slider_b']表示最大閾值,效果如下所示:
代碼如下所示:
ifvalues['canny']:
frame=cv2.Canny(frame,values['canny_slider_a'],values['canny_slider_b'])
4.3、輪廓檢測(cè)
輪廓檢測(cè)是形狀分析和物體檢測(cè)和識(shí)別的有用工具,連接所有連續(xù)點(diǎn)(沿著邊界)的曲線,具有相同的顏色或強(qiáng)度,效果如下所示:
代碼如下所示:
ifvalues['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)
4.4、高斯濾波
進(jìn)行高斯濾波,(21,21)表示高斯矩陣的長(zhǎng)與寬都是21,標(biāo)準(zhǔn)差取values['blur_slider'],效果如下所示:
代碼如下所示:
ifvalues['blur']:
frame=cv2.GaussianBlur(frame,(21,21),values['blur_slider'])
4.5、色彩轉(zhuǎn)換
色彩空間的轉(zhuǎn)化,HSV轉(zhuǎn)換為BGR,效果如下所示:
代碼如下所示:
ifvalues['hue']:
frame=cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
frame[:,:,0]+=int(values['hue_slider'])
frame=cv2.cvtColor(frame,cv2.COLOR_HSV2BGR)
4.6、調(diào)節(jié)對(duì)比度
增強(qiáng)對(duì)比度,使圖像中的細(xì)節(jié)看起來(lái)更加清晰,效果如下所示:
代碼如下所示:
ifvalues['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[:,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 新生兒甲亢護(hù)理教學(xué)查房
- 院內(nèi)醫(yī)生急救培訓(xùn)
- 幼兒園大班科學(xué)《會(huì)發(fā)光的物體》課件
- 平湖市臨港能源有限公司介紹企業(yè)發(fā)展分析報(bào)告
- 危險(xiǎn)裝置評(píng)估報(bào)告模板
- 衛(wèi)生保健年度工作亮點(diǎn)匯報(bào)
- 講究衛(wèi)生關(guān)注健康
- 青年文化講堂策劃方案范文
- 2025年智能建筑系統(tǒng)集成節(jié)能降耗在數(shù)據(jù)中心產(chǎn)業(yè)布局中的應(yīng)用研究報(bào)告
- 學(xué)校專業(yè)課件介紹
- 2022年廣東省深圳市中考化學(xué)真題試卷
- 工貿(mào)企業(yè)有限空間作業(yè)場(chǎng)所安全管理臺(tái)賬
- 國(guó)際財(cái)務(wù)管理教學(xué)ppt課件(完整版)
- DB33∕T 715-2018 公路泡沫瀝青冷再生路面設(shè)計(jì)與施工技術(shù)規(guī)范
- 彩色簡(jiǎn)約魚(yú)骨圖PPT圖表模板
- 光引發(fā)劑的性能與應(yīng)用
- PID控制經(jīng)典PPT
- 圖像處理和分析(上冊(cè))課后習(xí)題答案(章毓晉)
- 油田注入水細(xì)菌分析方法+絕跡稀釋法
- 醫(yī)師處方權(quán)申請(qǐng)
- 簡(jiǎn)易充電器課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論