cv.FLOODFILL_FIXED_RANGE和cv.FLOODFILL_MASK_ONLY

本文介绍了OpenCV中FLOODFILL_FIXED_RANGE和FLOODFILL_MASK_ONLY两种泛洪填充方式。FLOODFILL_FIXED_RANGE会改变图像,使用指定的像素值范围进行填充;而FLOODFILL_MASK_ONLY则不改变图像,仅在mask上填充,类似Photoshop的蒙版。在使用FLOODFILL_MASK_ONLY时,需注意mask层的设置,填充区域需设为0,非填充区域设为1。
摘要由CSDN通过智能技术生成
def fill_color_demo(image):
    copyImg = image.copy()
    h, w = image.shape[:2]
    mask = np.zeros([h+2, w+2], np.uint8)
    # 参数:原图,mask图,起始点,起始点值减去该值作为最低值,起始点值加上该值作为最高值,彩色图模式
    cv.floodFill(copyImg, mask, (30, 30), 
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
floodfill函数是一种图像处理算法,可以填充封闭区域,常用于图像分割、目标检测等领域。其使用方法如下: 1. 导入相关库:首先需要导入OpenCV库。可以使用以下代码导入: ```python import cv2 ``` 2. 读取图像:使用OpenCV中的imread函数读取需要处理的图像。例如: ```python img = cv2.imread("image.jpg") ``` 3. 选择填充起点:选择一个像素点作为起点,从该点开始进行填充。可以使用鼠标点击事件或手动指定像素点。 4. 调用floodfill函数:使用cv2.floodfill函数进行填充。该函数的参数包括待填充图像、填充起点、填充颜色、填充边界、低阈值、高阈值等。例如: ```python cv2.floodFill(img, mask, seed_point, (0, 0, 255), (8, 8, 8), (8, 8, 8), cv2.FLOODFILL_FIXED_RANGE) ``` 其中,img表示待填充图像,mask表示掩码图像,seed_point表示填充起点,(0,0,255)表示填充颜色,(8,8,8)表示低阈值和高阈值,cv2.FLOODFILL_FIXED_RANGE表示填充模式。 5. 显示结果:使用imshow函数显示填充结果。例如: ```python cv2.imshow("Result", img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 完整代码示例: ```python import cv2 def floodfill(image, x, y): mask = np.zeros((image.shape[0] + 2, image.shape[1] + 2), np.uint8) cv2.floodFill(image, mask, (x, y), (0, 0, 255), (8, 8, 8), (8, 8, 8), cv2.FLOODFILL_FIXED_RANGE) if __name__ == '__main__': img = cv2.imread("image.jpg") cv2.namedWindow("image") cv2.setMouseCallback("image", on_mouse) while True: cv2.imshow("image", img) if cv2.waitKey(20) & 0xFF == 27: break cv2.destroyAllWindows() ``` 在此示例中,我们定义了一个floodfill函数,并在主函数中使用setMouseCallback函数绑定鼠标事件,当鼠标左键单击时,调用floodfill函数进行填充。最后使用imshow函数显示填充结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值