二值图像孔洞填充
(這里的二值為0和255)
二值圖像的孔洞填充是基于圖像形態(tài)學(xué)操作的基本運算,本文參考數(shù)字圖像處理(岡薩雷斯著)相關(guān)章節(jié)的有關(guān)內(nèi)容并結(jié)合作者自己的思考,給出了基于C# 二值圖像孔洞填充的可行程序。
基礎(chǔ)知識:參考數(shù)字圖像處理 P402-P415
數(shù)學(xué)形態(tài)學(xué)的語言是集合論,這里所說的孔洞是二值圖像內(nèi)部八連通點陣組成的閉合圈內(nèi)的像素點集,孔洞填充的基本步驟如下:
1.確定二值圖像像素[0,0]為初始種子點,這里認(rèn)為[0,0]像素點為背景點,而非某個孔洞內(nèi)部的點。
2.以種子點為起點,采用形態(tài)學(xué)膨脹算法對背景進(jìn)行填充。膨脹到不能膨脹為止。膨脹運算采用四連通結(jié)構(gòu)元。
?
?
四連通結(jié)構(gòu)元(即中心像素為種子,以四連通的方式向周圍膨脹):
?
?
3.背景填充結(jié)束后,對得到的二值圖像取反得到新的二值圖像,此時圖像為全部孔洞的點集。
4.將第三步驟得到的二值圖像與原二值圖像相加及得到孔洞填充的結(jié)果。
?
這樣的算法對于大多數(shù)圖像有效,然而對于[0,0]位置的像素,若為某孔洞內(nèi)部的點則無法實現(xiàn)有效的孔洞填充。為了解決這一問題,這里采用拓展圖像的方法,即在原圖像的上下左右分別增加一行或一列數(shù)值為255的像素。使原圖像尺寸由a*b 變?yōu)?a+2)*(b+2),以增加的四周全部像素或[0,0]處的像素為種子,對原圖像進(jìn)行膨脹運算。
結(jié)果如下:(圖中未被填充“孔洞”是由于邊緣未閉合)
? ? ? ? ?
總結(jié)
- 上一篇: 推荐5款免费无广告的精品软件
- 下一篇: 图像处理中的卷积