1. ROI: region of interest
src是原图
face = src[100:200, 300:400]
cv.imshow("face", face)
从原图中截取感兴趣的区域
放回原图的时候,注意 色彩空间必须是一致的 (BGR)
2.泛洪填充:填充,遇到边界(不同的颜色)就停止
def fill_color_demo(img):
copy_img = img.copy()
h, w = img.shape[:2]
mask = np.zeros([h+2, w+2], np.uint8)
cv.floodFill(copy_img, mask, (30,30), (0,255,255), (100,100,100), (50,50,50), cv.FLOODFILL_FIXED_RANGE)
cv.imshow("fill color", copy_img)
(30,30) 取出来的点
(0, 255, 255 ) 填充的颜色是 黄色
(100,100,100)是低值
(50,50,50)是高值
从 30,30 这个点取出的像素,减去 低值的像素, 就是 要填充的最低的范围
从 30,30 这个点取出的像素,加上 高值的像素, 就是 要填充的最高的范围
二值图像填充 cv.FLOODFILL_MASK_ONLY
def fill_binary():
img = np.zeros([400,400,3], np.uint8)
img[100:300, 100:300, :] = 255
cv.imshow("img", img)
mask = np.ones([400+2, 400+2, 1], np.uint8) # 这里要注意
mask[101:301, 101:301] = 0
cv.floodFill(img, mask, (200,200),(0,0,255),cv.FLOODFILL_MASK_ONLY)
cv.imshow("mask img", img)