1、原理
結構元素(Sturcture Element),形象稱呼刷子,在每個像素位置上與二值圖像對應的區域進行特定的邏輯運算。運算結構是輸出圖像的相應像素。運算效果取決於結構元素大小內容以及邏輯運算性質。
對Z2上元素集合A和結構體元素S,使用S對A進行腐蝕,記作:
AΘS={z|(S)z € A}
讓位於圖像圓點的結構元素S在Z平面上移動,如果S的圓點移動到z點時,S能夠完全的包含於A中,則認為這樣的z點構成的集合是S對A的腐蝕圖像。
下圖左側是原圖X,B是結構元素,右圖是腐蝕的結果。腐蝕的方法是,拿B的中心點和X上的點一個一個地對比,如果B上的所有點都在X的范圍內,則該點保留,否則將該點去掉;右邊是腐蝕后的結果。可以看出,它仍在原來X的范圍內,且比X包含的點要少,就象X被腐蝕掉了一層。圖像腐蝕類似於“領域被蠶食”,將圖像中的高亮區域或白色部分進行縮減細化,其運行結果圖比原圖的高亮區域更小。
2、腐蝕的實現
imgPath = 'E:\opencv_pic\src_pic\pic1.bmp'; img = imread(imgPath); img=rgb2gray(img); img = 255-img; se = strel('square', 3) img2 = imerode(img, se); subplot(1,2,1),imshow(img),title('原始圖像'); subplot(1,2,2),imshow(img2),title('腐蝕圖像');
參與計算的結構元素se為:
se =
Flat STREL object containing 9 neighbors.
Neighborhood:
1 1 1
1 1 1
1 1 1
放大后可以看到,原始圖像左上角第三列上方有一個5*5方塊,下方有一個4*4的方塊。腐蝕后變為右側的圖像。腐蝕前后方塊的對比圖如下。
如果把結構元素改為5*5,se = strel('square', 5);則腐蝕圖像沒有左上角的白塊。
如果把結構元素改為10*10,se = strel('square', 10);則腐蝕圖像文字變得非常纖細。
3、總結
腐蝕可以用於濾波,選擇適當的結構元素,可以濾掉所有不能完全包含結構元素的噪聲點。但是在濾除噪聲的時候,對前景圖像的形狀也會產生影響,尤其是形狀邊緣,但是當只關心物體的位置和個數時,就不用太考慮形狀邊緣的變化,可以使用腐蝕來濾除噪聲。
尊重原創技術文章,轉載請注明。