漫水填充:也就是用一定颜色填充联通区域,通过设置可连通像素的上下限以及连通方式来达到不同的填充效果;
程序说明依旧以注释的形式写出,在Python例程的基础上修改为随机颜色填充:
#decoding:utf-8
import numpy as np
import cv2
import random
help_message = '''USAGE: floodfill.py [<image>]
Click on the image to set seed point
Keys:
f - toggle floating range
c - toggle 4/8 connectivity
ESC - exit
'''
if __name__ == '__main__':
import sys
try: fn = sys.argv[1]
except: fn = 'E:/lena.jpg'
print help_message
img = cv2.imread(fn, True)
h, w = img.shape[:2]#得到图像的高和宽
mask = np.zeros((h+2, w+2), np.uint8)#掩码单通道8比特,长和宽都比输入图像多两个像素点,满水填充不会超出掩码的非零边缘
seed_pt = None
fixed_range = True
connectivity = 4
def update(dummy=None):
if seed_pt is None:
cv2.imshow('floodfill', img)
return
flooded