skimage函数记录之measure.label和measure.regionprops
這兩個(gè)函數(shù)可以用來(lái)處理圖(一般是二值圖)中出現(xiàn)的連通區(qū)域,我們來(lái)分別分析。
一.skimage.measure.label(input,?background?= None,?return_num?= False,?connectivity?= None)
功能:標(biāo)記圖中的連通區(qū)域?
參數(shù)解釋:input:輸入二值圖
? ? ? ? ? ? ? ? ? background:指定北京元素像素值,默認(rèn)為0
? ? ? ? ? ? ? ? ? return_num:bool變量,True:返回(label,num)False:只返回label
? ? ? ? ? ? ? ? ? connectivity:1:4鄰接,計(jì)算上下左右4個(gè)方向 2:8鄰接,計(jì)算周?chē)?個(gè)方向,None默認(rèn)取最高
返回值:
labels?: 和input形狀一樣,但是數(shù)值是標(biāo)記號(hào),所以這是一個(gè)已經(jīng)標(biāo)記的圖片
num?: 標(biāo)記的種類(lèi)數(shù),如果輸出0則只有背景,如果輸出n則有n個(gè)連通域
PS:什么叫做連通域,在二值圖像中,如果兩個(gè)像素點(diǎn)相鄰且值相同(同為0或1),稱(chēng)這兩個(gè)像素點(diǎn)在一個(gè)相互連通的區(qū)域內(nèi),這種關(guān)系存在傳遞性,我們用相同的值來(lái)標(biāo)記同一個(gè)連通區(qū)域的所有像素。常見(jiàn)的鄰接關(guān)系有2種:4鄰接與8鄰接。4鄰接一共4個(gè)點(diǎn),上下左右,8鄰接的點(diǎn)包括周?chē)?個(gè),下圖所示
例:
x=np.array([[1,0,0,0,0],[0,1,7,7,0],[0,0,1,1,9],[0,0,0,0,1]]) x '''Out[109]: array([[1, 0, 0, 0, 0],[0, 1, 7, 7, 0],[0, 0, 1, 1, 9],[0, 0, 0, 0, 1]])''' label(x,connectivity = 1, return_num=True) '''Out[110]: (array([[1, 0, 0, 0, 0],[0, 2, 3, 3, 0],[0, 0, 4, 4, 5],[0, 0, 0, 0, 6]]), 6)''' label(x,connectivity = 2, return_num=True) '''Out[111]: (array([[1, 0, 0, 0, 0],[0, 1, 2, 2, 0],[0, 0, 1, 1, 2],[0, 0, 0, 0, 1]]), 2)'''二.skimage.measure.regionprops(label_image, intensity_image = None, cache = True)[source]
參數(shù)解釋:label_image:已經(jīng)被標(biāo)記好的輸入圖片
? ? ? ? ? ? ? ? ??intensity_image:強(qiáng)度圖,每個(gè)通道的像素值
? ? ? ? ? ? ? ? ? cache:是否開(kāi)啟緩存,開(kāi)啟能加快計(jì)算速度
返回值:area? ? (int)? ? ? ? ? ? ? ? ? ? ? ? ? ? ?區(qū)域內(nèi)像素點(diǎn)總數(shù)
? ? ? ? ? ? ? bbox? ? (tuple)? ? ? ? ? ? ? ? ? ? ? ? 邊界外接框(min_row, min_col, max_row, max_col)
? ? ? ? ? ? ? centroid? ? (array)? ? ? ? ? ? ? ? ? 質(zhì)心坐標(biāo)
? ? ? ? ? ? ? convex_area?(int)? ? ? ? ? ? ? ? ? ?凸包內(nèi)像素點(diǎn)總數(shù)
??????????????convex_image? ? (ndarray)? ? ?和邊界外接框同大小的凸包
??????????????coords? ? (ndarray)? ? ? ? ? ? ? ? ?區(qū)域內(nèi)像素點(diǎn)坐標(biāo)
? ? ? ? ? ? ? Eccentricity? ? ?(float)? ? ? ? ? ? ? 離心率
??????????????equivalent_diameter(float)? ? ?和區(qū)域面積相同的圓的直徑
? ? ? ? ? ? ? euler_number? ? (int) ? ? ? ?區(qū)域歐拉數(shù)
??????????????extent? ? ?(float)? ? ? ? ? ? ? ? ? ? ? 區(qū)域面積和邊界外接框面積的比率
? ? ? ? ? ? ? filled_area? ? (int)? ? ? ? ? ? ? ? ? ? 區(qū)域和外接框之間填充的像素點(diǎn)總數(shù)?
??????????????perimeter? ? ?(float)? ? ? ? ? ? ? ? ? 區(qū)域周長(zhǎng)
??????????????label? ? (int)? ? ? ? ? ? ? ? ? ? ? ? ? ? ?區(qū)域標(biāo)記
?PS:標(biāo)注部分為常用部分,其中要注意返回的centroid,x,y坐標(biāo)與圖像中的x軸,y軸有所差異。
總結(jié)
以上是生活随笔為你收集整理的skimage函数记录之measure.label和measure.regionprops的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 记录 之 不同的Normalizatio
- 下一篇: sift+图像匹配 算法