函式功能:
對 二值影象進行
數學形態學(mathematical morphology)運算。
語法格式:
(1) bw2 = bwmorph(bw,operation)
對二值影象進行指定的形態學處理。
(2) bw2 = bwmorph(bw,operation,n)
對二值影象進行n次指定的形態學處理。
operation是以下的字串:
operation
description
'bothat'
是形態學上的「底帽」變換操作,返回的影象是原圖減去形態學閉操作處理後的影象(閉操作:先膨脹再腐蝕)
'bridge'
連線斷開的畫素。也就是將0值畫素置1如果他有兩個非零的不相連(8鄰域)的畫素,比如:
1 0 0 1 1 0
1 0 1 經過bridge連線後變為 1 1 1
0 0 1 0 1 1
'clean'
移除孤立的畫素(被0包圍的1)。比如下面這個模型的中心畫素:
0 0 0
0 1 0
0 0 0
'close'
執行形態學閉操作(先膨脹後腐蝕)
'diag'
利用對角線填充來消除背景中的8連通區域。比如:
0 1 0 1 1 0
1 0 0 經過diag變成 1 1 0
0 0 0 0 0 0
'dilate'
利用結構ones(3)執行膨脹操作。
'erode'
利用結構ones(3)執行腐蝕操作。
'fill'
填充孤立的內部畫素(被1包圍的0),比如下面模型的中心畫素:
1 1 1
1 0 1
1 1 1
'hbreak'
移除h連通的畫素,例如:
1 1 1 1 1 1
0 1 0 變成 0 0 0
1 1 1 1 1 1
'majority'
將某一畫素置1如果該畫素的3×3鄰域中至少有5個畫素為1;否則將該畫素置0
'open'
執行形態學開操作(先腐蝕後膨脹)
'remove'
移除內部畫素。該選項將一畫素置0如果該畫素的4連通鄰域都為1,僅留下邊緣畫素。
'shrink'
n = inf時,將目標縮成乙個點。沒有孔洞的目標縮成乙個點,有孔洞的目標縮成乙個連通環。
'skel'
n = inf時,移除目標邊界畫素,但是不允許目標分隔開,保留下來的畫素組合成影象的骨架。
'spur'
移除刺激(孤立)畫素。比如:
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 1 0 變成 0 0 0 0
0 1 0 0 0 1 0 0
1 1 0 0 1 1 0 0
'thicken'
n = inf時,通過在目標外部增加畫素加厚目標直到這樣做最終使先前未連線目標成為8連通域。
'thin'
n = inf時,減薄目標成線。沒有孔洞的目標縮成最低限度的連通邊;有孔洞的目標縮成連通環。
'tophat'
執行形態學「頂帽」變換操作,返回的影象是原圖減去形態學開操作處理之後的影象(開操作:先腐蝕再膨脹)。
函式示例:
i = imread('bw.bmp');
i2 = bwmorph(i, 'thin',inf);
figure,imshow(i);
figure,imshow(i2);
提取骨架 細化
bool iscontourp int x,int y,iplimage src img int linebytes src img widthstep byte lpptr byte src img imagedata linebytes y x p 2 lpptr linebytes true ...
細化演算法matlab
最簡單的方法是用matlab自帶的函式 bw2 bwmorph bw,thin n n是要細化迭代的次數,也可以是inf 沒有引號 inf表示演算法會一直迭代直到影象不再改變。演算法原理參考 1 zhang suen演算法 原理簡介 演算法實現 將下列三個m檔案和主m檔案放到一起,主m檔案這樣呼叫 ...
細化匹配 lhMorpThinFit
細化匹配 二值 所採用的2 1 自定義結構為 函式 lhmorpthinfit 說明 形態學細化匹配變換 引數 src 輸入影象,灰度或二值影象 dst 輸出影象 sefg 前景結構元素 sebg 背景結構元素,如為空,則預設為前景結構元素sefg的取反 type變換中擊中 擊不中變換的型別,二值 ...