分割得到的二值圖像取最大區域和對分割結果填補完整

二值圖像分割結果提取主要用到skimage.measure的label和regionprops

填補空洞主要用到scipy.ndimage.binary_fill_holes

label這個函數可以用來對圖像進行塊的標記,比如我自己做的這個二值圖像,現在我用label可以實現對圖像所有塊標記,其中黑色背景爲0,然後塊一次被標記上數字(就是所有屬於某個塊的像素值都被設置成一個固定的值)這裏寫圖片描述

下面,我將每個塊更加清晰可視化一下,一個個顯示所有的塊這裏寫圖片描述

OK,把每個塊都標出來了就可以求每個塊的屬性,當然這兒不用自己去算,用regionprops這個函數就行,這個函數可以求出相當豐富的塊所包含的信息,這兒我只需要得到每個塊的面積就行

這兒我可以看出label後得到7個塊,0是背景,其餘剩下6個有意義的塊
這裏寫圖片描述

這兒直方圖看看每個塊所含面積,其中第0塊(也就是背景)是最多的,其次是第3塊
這裏寫圖片描述

好了,現在我要得到最大的塊,其他的都抹去,完美! 這兒需要注意的是regionprops是針對非背景來操作的,所以它得出的最大塊序號其實要+1才能得到label中對應的序號,因爲label是包括了背景的,所以多一個塊。
這裏寫圖片描述

當分割出來的醃膜存在空洞,而這個空洞你是不希望存在的,想要填補它, 這兒就用scipy.ndimage.binary_fill_holes來填補上
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章