版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第Python圖像運(yùn)算之腐蝕與膨脹詳解目錄前言一.形態(tài)學(xué)理論知識(shí)二.圖像腐蝕三.圖像膨脹四.總結(jié)
前言
這篇文章將詳細(xì)講解開始圖像形態(tài)學(xué)知識(shí),主要介紹圖像腐蝕處理和膨脹處理。數(shù)學(xué)形態(tài)學(xué)(MathematicalMorphology)是一種應(yīng)用于圖像處理和模式識(shí)別領(lǐng)域的新方法。數(shù)學(xué)形態(tài)學(xué)(也稱圖像代數(shù))表示以形態(tài)為基礎(chǔ)對(duì)圖像進(jìn)行分析的數(shù)學(xué)工具,其基本思想是用具有一定形態(tài)的結(jié)構(gòu)元素去量度和提取圖像中對(duì)應(yīng)形狀以達(dá)到對(duì)圖像分析和識(shí)別的目的。
一.形態(tài)學(xué)理論知識(shí)
數(shù)學(xué)形態(tài)學(xué)的應(yīng)用可以簡化圖像數(shù)據(jù),保持它們基本的形狀特征,并出去不相干的結(jié)構(gòu)。數(shù)學(xué)形態(tài)學(xué)的算法有天然的并行實(shí)現(xiàn)的結(jié)構(gòu),主要針對(duì)的是二值圖像(0或1)。在圖像處理方面,二值形態(tài)學(xué)經(jīng)常應(yīng)用到對(duì)圖像進(jìn)行分割、細(xì)化、抽取骨架、邊緣提取、形狀分析、角點(diǎn)檢測(cè),分水嶺算法等。由于其算法簡單,算法能夠并行運(yùn)算所以經(jīng)常應(yīng)用到硬件中[1-2]。
常見的圖像形態(tài)學(xué)運(yùn)算包括:
腐蝕膨脹開運(yùn)算閉運(yùn)算梯度運(yùn)算頂帽運(yùn)算底帽運(yùn)算
這些運(yùn)算在OpenCV中主要通過MorphologyEx()函數(shù)實(shí)現(xiàn),它能利用基本的膨脹和腐蝕技術(shù),來執(zhí)行更加高級(jí)形態(tài)學(xué)變換,如開閉運(yùn)算、形態(tài)學(xué)梯度、頂帽、黑帽等,也可以實(shí)現(xiàn)最基本的圖像膨脹和腐蝕。其函數(shù)原型如下:
dst=cv2.morphologyEx(src,model,kernel)
src表示原始圖像
model表示圖像進(jìn)行形態(tài)學(xué)處理,包括:
(1)cv2.MORPH_OPEN:開運(yùn)算(OpeningOperation)
(2)cv2.MORPH_CLOSE:閉運(yùn)算(ClosingOperation)
(3)cv2.MORPH_GRADIENT:形態(tài)學(xué)梯度(MorphologicalGradient)
(4)cv2.MORPH_TOPHAT:頂帽運(yùn)算(TopHat)
(5)cv2.MORPH_BLACKHAT:黑帽運(yùn)算(BlackHat)
kernel表示卷積核,可以用numpy.ones()函數(shù)構(gòu)建
二.圖像腐蝕
圖像的腐蝕(Erosion)和膨脹(Dilation)是兩種基本的形態(tài)學(xué)運(yùn)算,主要用來尋找圖像中的極小區(qū)域和極大區(qū)域。圖像腐蝕類似于領(lǐng)域被蠶食,它將圖像中的高亮區(qū)域或白色部分進(jìn)行縮減細(xì)化,其運(yùn)行結(jié)果比原圖的高亮區(qū)域更小。
設(shè)A,B為集合,A被B的腐蝕,記為A-B,其定義為:
該公式表示圖像A用卷積模板B來進(jìn)行腐蝕處理,通過模板B與圖像A進(jìn)行卷積計(jì)算,得出B覆蓋區(qū)域的像素點(diǎn)最小值,并用這個(gè)最小值來替代參考點(diǎn)的像素值。如圖1所示,將左邊的原始圖像A腐蝕處理為右邊的效果圖A-B。
圖像腐蝕主要包括二值圖像和卷積核兩個(gè)輸入對(duì)象,卷積核是腐蝕中的關(guān)鍵數(shù)組,采用Numpy庫可以生成。卷積核的中心點(diǎn)逐個(gè)像素掃描原始圖像,被掃描到的原始圖像中的像素點(diǎn),只有當(dāng)卷積核對(duì)應(yīng)的元素值均為1時(shí),其值才為1,否則將其像素值修改為0。在Python中,主要調(diào)用OpenCV的erode()函數(shù)實(shí)現(xiàn)圖像腐蝕。
其函數(shù)原型如下:
dst=cv2.erode(src,kernel,iterations)
src表示原始圖像
kernel表示卷積核
iterations表示迭代次數(shù),默認(rèn)值為1,表示進(jìn)行一次腐蝕操作
可以采用函數(shù)numpy.ones((5,5),numpy.uint8)創(chuàng)建55的卷積核,如下:
圖像腐蝕操作的代碼如下所示:
#-*-coding:utf-8-*-
#By:Eastmount
importcv2
importnumpyasnp
#讀取圖片
src=cv2.imread('test01.jpg',cv2.IMREAD_UNCHANGED)
#設(shè)置卷積核
kernel=np.ones((5,5),np.uint8)
#圖像腐蝕處理
erosion=cv2.erode(src,kernel)
#顯示圖像
cv2.imshow("src",src)
cv2.imshow("result",erosion)
#等待顯示
cv2.waitKey(0)
cv2.destroyAllWindows()
輸出結(jié)果如圖2所示,左邊表示原圖,右邊是腐蝕處理后的圖像,可以發(fā)現(xiàn)圖像中的干擾細(xì)線(噪聲)被清洗干凈。
如果腐蝕之后的圖像仍然存在噪聲,可以設(shè)置迭代次數(shù)進(jìn)行多次腐蝕操作。比如進(jìn)行9次腐蝕操作的核心代碼如下:
erosion=cv2.erode(src,kernel,iterations=9)
最終經(jīng)過9次腐蝕處理的輸出圖像如圖3所示。
三.圖像膨脹
圖像膨脹是腐蝕操作的逆操作,類似于領(lǐng)域擴(kuò)張,它將圖像中的高亮區(qū)域或白色部分進(jìn)行擴(kuò)張,其運(yùn)行結(jié)果比原圖的高亮區(qū)域更大。
設(shè)A,B為集合,為空集,A被B的膨脹,記為AB,其中為膨脹算子,膨脹定義為:
該公式表示用B來對(duì)圖像A進(jìn)行膨脹處理,其中B是一個(gè)卷積模板,其形狀可以為正方形或圓形,通過模板B與圖像A進(jìn)行卷積計(jì)算,掃描圖像中的每一個(gè)像素點(diǎn),用模板元素與二值圖像元素做與運(yùn)算,如果都為0,那么目標(biāo)像素點(diǎn)為0,否則為1。從而計(jì)算B覆蓋區(qū)域的像素點(diǎn)最大值,并用該值替換參考點(diǎn)的像素值實(shí)現(xiàn)圖像膨脹。圖4是將左邊的原始圖像A膨脹處理為右邊的效果圖AB。
圖像被腐蝕處理后,它將去除噪聲,但同時(shí)會(huì)壓縮圖像,而圖像膨脹操作可以去除噪聲并保持原有形狀,如圖5所示。
在Python中,主要調(diào)用OpenCV的dilate()函數(shù)實(shí)現(xiàn)圖像腐蝕。函數(shù)原型如下:
dst=cv2.dilate(src,kernel,iterations)
src表示原始圖像
kernel表示卷積核,可以用numpy.ones()函數(shù)構(gòu)建
iterations表示迭代次數(shù),默認(rèn)值為1,表示進(jìn)行一次膨脹操作
圖像膨脹操作的代碼如下所示:
#-*-coding:utf-8-*-
#By:Eastmount
importcv2
importnumpyasnp
#讀取圖片
src=cv2.imread('zhiwen.png',cv2.IMREAD_UNCHANGED)
#設(shè)置卷積核
kernel=np.ones((5,5),np.uint8)
#圖像膨脹處理
erosion=cv2.dilate(src,kernel)
#顯示圖像
cv2.imshow("src",src)
cv2.imshow("result",erosion)
#等待顯示
cv2.waitKey(0)
cv2.d
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 阜寧縣中考題目及答案
- 養(yǎng)老院老人健康監(jiān)測(cè)人員職業(yè)發(fā)展規(guī)劃制度
- 美團(tuán)酒店考試題目及答案
- 辦公室員工培訓(xùn)記錄與檔案制度
- 銻制品出口配額制度
- 銀行取錢用途制度
- 述責(zé)述廉評(píng)議上級(jí)文件制度
- 模擬考試怎么編程題目及答案
- 運(yùn)輸企業(yè)重大事故隱患排查治理制度
- 車輛動(dòng)態(tài)信息分析統(tǒng)計(jì)處理制度
- DL∕T 612-2017 電力行業(yè)鍋爐壓力容器安全監(jiān)督規(guī)程
- 杭州中考初中英語詞匯表
- 2024年國企行測(cè)題庫
- 煙囪技術(shù)在血管腔內(nèi)修復(fù)術(shù)中的應(yīng)用
- 崗位聘用登記表
- 2023年全國統(tǒng)一高考政治試卷(新課標(biāo)ⅰ)(含解析版)
- 2023年北京高考語文答題卡(北京卷)word版可編輯kh
- 2023年高鐵信號(hào)車間副主任述職報(bào)告
- GB/T 5762-2012建材用石灰石、生石灰和熟石灰化學(xué)分析方法
- 第3章 圓錐曲線的方程【精簡思維導(dǎo)圖梳理】高考數(shù)學(xué)高效備考 人教A版2019選擇性必修第一冊(cè)
- 劉一秒演說智慧經(jīng)典(內(nèi)部筆記)
評(píng)論
0/150
提交評(píng)論