1
我使用的skimage.segmentation.felzenszwalb
如here所示,它很棒。scikit-image - felzenszwalb分割:刪除大段
我儘可能地調整了參數,但它仍然檢測到一些我不想要的細節。我如何才能刪除超過一定大小的細分市場?我知道你可以使用skimage.measure.regionprops
來獲得每個片段的面積,但我不知道如何從segments_fz
中刪除一個片段,讓陣列保持爲mark_boundaries
。
import numpy as np
import skimage.io
from skimage.util import img_as_float
from skimage.segmentation import felzenszwalb
from skimage.segmentation import mark_boundaries
img = img_as_float(astronaut()[::2, ::2])
segments_fz = felzenszwalb(img, scale=100, sigma=0.5, min_size=50)
print("Felzenszwalb number of segments: {}".format(len(np.unique(segments_fz))))
segmented_img = mark_boundaries(img, segments_fz)
skimage.io.imsave('img_labeled.png', segmented_img)
這類似於this post,但他們正試圖刪除,而不是路數小物件。