首先看看floodFill()
的算法原型
def floodFill(image, mask, seedPoint, newVal, loDiff=None, upDiff=None, flags=None)
第一个参数image为原图像
第二个参数mask为掩模
第三个参数SeedPoint为随机初始种子
第四个参数为低值
第五个参数为高值
第六个参数为选项,即填充方法,FLOODFILL_FIXED_RANGE 指定填充的颜色
FLOODFILL_MASK_ONLY,mask的指定的位置为零时才填充,不为0不填充
分别看看这两个函数的例子:
def fill_color_demo(image):
copyImage = image.copy()
h, w = copyImage.shape[:2]
mask = np.zeros([h+2, w+2], np.uint8) // 这里必须为 h+2,w+2
cv.floodFill(copyImage, mask, (20, 20), (0, 125, 125), (100, 100, 100), (50, 50, 50), cv.FLOODFILL_FIXED_RANGE)
cv.imshow("fill_color_demo", copyImage)
这个意思就是选取一个随机种子(20,20),然后在低值和高值范围内,就把颜色改为(0,125,125)。
我们看运行结果: