skimage.measure.label


這個label方法可以用來判別圖像中連通區域的數量及標記,舉例:

mask_np

>>array([[1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 1., 1., 1., 1., 1., 0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 1., 1., 1., 1., 1., 0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 1., 1., 1., 1., 1., 0., 0., 0., 0., 0., 0., 1.],
       [0., 1., 1., 1., 1., 1., 1., 0., 0., 0., 1., 1., 1., 1.],
       [0., 1., 1., 1., 1., 1., 0., 0., 0., 1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1., 1., 0., 0., 0., 1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1., 1., 0., 0., 0., 1., 1., 1., 1., 1.],
       [1., 1., 1., 1., 1., 1., 0., 0., 0., 0., 0., 0., 0., 0.],
       [1., 1., 1., 1., 1., 0., 0., 0., 0., 0., 1., 0., 0., 0.],
       [1., 1., 1., 1., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 0., 0., 1.],
       [0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 0., 0., 1.]],
      dtype=float32)

假設mask_np是14*14的二值圖像,那么可以觀察到上圖的聯通區域一共有6處

component_labels = measure.label(mask_np)

component_labels

>>array([[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 3],
       [0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 3, 3, 3, 3],
       [0, 2, 2, 2, 2, 2, 0, 0, 0, 3, 3, 3, 3, 3],
       [2, 2, 2, 2, 2, 2, 0, 0, 0, 3, 3, 3, 3, 3],
       [2, 2, 2, 2, 2, 2, 0, 0, 0, 3, 3, 3, 3, 3],
       [2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0],
       [2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 4, 0, 0, 0],
       [2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 6],
       [0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 6]])

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM