删除蒙版中的小对象,并在for循环外生成一个新的二进制蒙版

时间:2019-01-06 23:23:03

标签: label generate

感谢您的帮助;

这部分代码允许我绘制所需内容,但需要将结果(具有> 500个区域对象的二进制图像)分配给变量以进行进一步处理

Improved_label = np.zeros_like(label_image)

#props = regionprops(label_image)

for R in regionprops(label_image):
    if R.area > 500:
        # draw the region (I'm sure there's a more efficient way of doing it)
        for c in R.coords:  
            Improved_label[c[0], c[1]] = 1

#Improved_labe1 = Improved_label > 1

1 个答案:

答案 0 :(得分:0)

显然,变量名称开头的名称“ improved”有问题(不确定原因)。但是无论如何,这里有两个解决方案。我希望这对具有Matlab背景的人有帮助:

-------------选项A --------------

label2_test = np.zeros_like(label_image)

for R in regionprops(label_image):
    if R.area > 1000:
        # draw the region (I'm sure there's a more efficient way of doing it)
        for c in R.coords:  
            label2_test[c[0], c[1]] = 1

label2_test = label2_test > 0

plt.imshow(labe2_test)

----------------选项B -----------------

from skimage import morphology
labe1_improved = morphology.remove_small_objects(label_image, min_size=1000)
相关问题