一、原理html
結構元素(Sturcture Element),形象稱呼刷子,在每一個像素位置上與二值圖像對應的區域進行特定的邏輯運算。運算結構是輸出圖像的相應像素。運算效果取決於結構元素大小內容以及邏輯運算性質。spa
對Z2上元素集合A和結構體元素S,使用S對A進行腐蝕,記做:code
AΘS={z|(S)z € A}htm
讓位於圖像圓點的結構元素S在Z平面上移動,若是S的圓點移動到z點時,S可以徹底的包含於A中,則認爲這樣的z點構成的集合是S對A的腐蝕圖像。blog
下圖左側是原圖X,B是結構元素,右圖是腐蝕的結果。腐蝕的方法是,拿B的中心點和X上的點一個一個地對比,若是B上的全部點都在X的範圍內,則該點保留,不然將該點去掉;右邊是腐蝕後的結果。能夠看出,它仍在原來X的範圍內,且比X包含的點要少,就象X被腐蝕掉了一層。圖像腐蝕相似於「領域被蠶食」,將圖像中的高亮區域或白色部分進行縮減細化,其運行結果圖比原圖的高亮區域更小。get
二、腐蝕的實現it
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爲:opencv
se =class
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);則腐蝕圖像文字變得很是纖細。
三、總結
腐蝕能夠用於濾波,選擇適當的結構元素,能夠濾掉全部不能徹底包含結構元素的噪聲點。可是在濾除噪聲的時候,對前景圖像的形狀也會產生影響,尤爲是形狀邊緣,可是當只關心物體的位置和個數時,就不用太考慮形狀邊緣的變化,可使用腐蝕來濾除噪聲。
尊重原創技術文章,轉載請註明。