Python圖像運(yùn)算之腐蝕與膨脹詳解_第1頁
Python圖像運(yùn)算之腐蝕與膨脹詳解_第2頁
Python圖像運(yùn)算之腐蝕與膨脹詳解_第3頁
Python圖像運(yùn)算之腐蝕與膨脹詳解_第4頁
Python圖像運(yùn)算之腐蝕與膨脹詳解_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論