L = bwlabel(BW,n)
返回一個和BW大小相同的L矩陣,包含了標記了BW中每個連通區域的類別標簽,這些標簽的值為1、2、num(連通區域的個數)。n的值為4或8,表示是按4連通尋找區域,還是8連通尋找,默認為8。
[L,num] = bwlabel(BW,n)
這里num返回的就是BW中連通區域的個數。
一些連通域處理函數,轉自AmazingJack的專欄:http://m.blog.csdn.net/blog/AmazingJack/24417891
作用:刪除二值圖像BW中面積小於P的對象,默認情況下使用8鄰域。
算法:
(1)Determine the connected components.
L = bwlabeln(BW, conn);
(2)Compute the area of each component.
S = regionprops(L, 'Area');
(3)Remove small objects.
bw2 = ismember(L, find([S.Area] >= P));
2、matlab函數bwarea──計算對象面積
格式:total = bwarea(BW)
作用:估計二值圖像中對象的面積。
注:該面積和二值圖像中對象的像素數目不一定相等。
3、matlab函數imclearborder──邊界對象抑制
格式:IM2 = imclearborder(IM,conn)
作用:抑制和圖像邊界相連的亮對象。若IM是二值圖,imclearborder將刪除和圖像邊界相連的對象。默認情況conn=8。
注:For grayscale images, imclearborder tends to reduce the overall intensity level in addition to suppressing border structures.
算法:
(1)Mask image is the input image.
(2)Marker image is zero everywhere except along the border, where it equals the mask image.
4、matlab函數bwboundaries──獲取對象輪廓
格式:B = bwboundaries(BW,conn)(基本格式)
作用:獲取二值圖中對象的輪廓,和OpenCV中cvFindContours函數功能類似。B是一個P×1的cell數組,P為對象個數,每個cell 是Q×2的矩陣,對應於對象輪廓像素的坐標。
5、matlab函數imregionalmin──獲取極小值區域
格式:BW = imregionalmin(I,conn)
作用:尋找圖像I的極小值區域(regional maxima),默認情況conn=8。
Regional minima are connected components of pixels with a constant intensity value, and whose external boundary pixels all have a higher value.
6、matlab函數bwulterode──距離變換的極大值
格式:BW2 = bwulterode(BW,method,conn)
作用:終極腐蝕。尋找二值圖像BW的距離變換圖的區域極大值(regional maxima)。用於距離變換的距離默認為euclidean,連通性為8鄰域。
7、regionprops統計被標記的區域的面積分布,顯示區域總數。
函數regionprops語法規則為:STATS = regionprops(L,properties)
該函數用來測量標注矩陣L中每一個標注區域的一系列屬性。
L中不同的正整數元素對應不同的區域,例如:L中等於整數1的元素對應區域1;L中等於整數2的元素對應區域2;以此類推。
返回值STATS是一個 長度為max(L()的結構數組,結構數組的相應域定義了每一個區域相應屬性下的度量。
Properties可以是由逗號分割的字符串列表、包含字符 串的單元數組、單個字符串'all'或者'basic'。如果properties等於字符串'all',則表1中的度量數據都將被計算;如果properties等於字符串'basic',則屬性:'Area','Centroid'和'BoundingBox'將被計算。表1就是所有有效的屬性字符串。
表1 屬性字符串列表
properties值 |
度量圖像區域的屬性或功能 |
'Area' |
圖像各個區域中像素總個數 |
'BoundingBox' |
包含相應區域的最小矩形 |
'Centroid' |
每個區域的質心(重心) |
'MajorAxisLength' |
與區域具有相同標准二階中心矩的橢圓的長軸長度(像素意義下) |
'MinorAxisLength' |
與區域具有相同標准二階中心矩的橢圓的短軸長度(像素意義下) |
'Eccentricity' |
與區域具有相同標准二階中心矩的橢圓的離心率(可作為特征) |
'Orientation' |
與區域具有相同標准二階中心矩的橢圓的長軸與x軸的交角(度) |
'Image' |
與某區域具有相同大小的邏輯矩陣 |
'FilledImage' |
與某區域具有相同大小的填充邏輯矩陣 |
'FilledArea' |
填充區域圖像中的on像素個數 |
'ConvexHull' |
包含某區域的最小凸多邊形 |
'ConvexImage' |
畫出上述區域最小凸多邊形 |
'ConvexArea' |
填充區域凸多邊形圖像中的on像素個數 |
'EulerNumber' |
幾何拓撲中的一個拓撲不變量——歐拉數 |
'Extrema' |
八方向區域極值點 |
'EquivDiameter' |
與區域具有相同面積的圓的直徑 |
'Solidity' |
同時在區域和其最小凸多邊形中的像素比例 |
'Extent' |
同時在區域和其最小邊界矩形中的像素比例 |
'PixelIdxList' |
存儲區域像素的索引下標 |