种子填充_图像分割(python)

#coding:utf-8
import cv2
def seed_fill(img):
    ret,img = cv2.threshold(img,128,255,cv2.THRESH_BINARY_INV)
    label = 100
    stack_list = []
    h,w = img.shape
    for i in range(1,h-1,1):
        for j in range(1,w-1,1):
            if (img[i][j] == 255):
                img[i][j] = label
                stack_list.append((i,j))
                while len(stack_list)!=0:
                    cur_i = stack_list[-1][0]
                    cur_j = stack_list[-1][1]
                    img[cur_i][cur_j] = label
                    stack_list.remove(stack_list[-1])
                    #######四邻域,可改为八邻域
                    if (img[cur_i-1][cur_j] == 255):
                        stack_list.append((cur_i-1,cur_j))
                    if (img[cur_i][cur_j-1] == 255):
                        stack_list.append((cur_i,cur_j-1))
                    if (img[cur_i+1][cur_j] == 255):
                        stack_list.append((cur_i+1,cur_j))
                    if (img[cur_i][cur_j+1] == 255):
                        stack_list.append((cur_i,cur_j+1))
    cv2.imwrite('./result.jpg',img)
    cv2.imshow('img',img)
    cv2.waitKey()
if __name__ == '__main__':
    img = cv2.imread('./test.jpeg',0)
    seed_fill(img)

原图用于分割

分割后的结果图(pix=100)

参考博客https://blog.csdn.net/icvpr/article/details/10259577

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值