measure.label寻找最大连通域

网上看了几个帖子,自己试了一下,都以一点点错误和不匹配,于是自己修改了一个新的版本。用skimage.measure.label寻找最大连通域

 

from skimage import measure

# 输入二值图像mask
def largeConnectComponent(bw_image):
    labeled_img, num = measure.label(bw_image, neighbour, background=0, return_num=True)
    # 这里返回的labeled_img是一幅图像,不再是一副二值图像,有几个连通域,最大值就是几,num是连通域个数,1个连通域的话num=1

    max_label = 0
    max_num = 0

    # 图像全黑,没有连通域num=0,或者是由一个连通域num=1,直接返回原图像
    if num == 0 or num == 1:
        return bw_image
    else:
        for i in range(1, num+1):  #注意这里的范围,为了与连通域的数值相对应
            # 计算面积,保留最大面积对应的索引标签,然后返回二值化最大连通域
            if np.sum(labeled_img == i) > max_num:
                max_num = np.sum(labeled_img == i)
                max_label = i
        lcc = (labeled_img == max_label)
        return lcc

希望对大家有帮助!

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值