西北乱跑娃 --- opencv泛洪填充学习笔记

一、前言

泛洪填充算法也叫漫水填充算法。在网上查阅了很多的关于泛洪填充的案例但是一直都表示理解不了参数的具体作用,在自己的研究中才慢慢有所了解。

二、泛洪填充

在这里插入图片描述

import cv2
import matplotlib.pyplot as plt
import numpy as np

image = cv2.imread("cat.png")
copyImg = image.copy()

h, w = image.shape[:2]
mask = np.zeros([h+2, w+2],np.uint8)
cv2.floodFill(copyImg,mask,(360,200),(100,100,0),(100,50,100),(10,10,10),cv2.FLOODFILL_FIXED_RANGE)

img = cv2.cvtColor(copyImg, cv2.COLOR_BGR2RGB)
cv2.imshow("fill_color_demo", copyImg)
plt.figure('image')
plt.imshow(img)
plt.show()

核心的代码是:

cv2.floodFill(copyImg,mask,(360,200),(100,100,0),(100,50,100),(10,10,10),cv2.FLOODFILL_FIXED_RANGE)

三、参数说明

floodFill(image, mask, seedPoint, newVal[, loDiff[, upDiff[, flags]]])

image参数表示输入/输出1或3通道,8位或浮点图像。
mask参数表示掩码,该掩码是单通道8位图像,比image的高度多2个像素,宽度多2个像素。填充时不能穿过输入掩码中的非零像素。
seedPoint参数表示泛洪算法(漫水填充算法)的起始点,即图像像素坐标。

在这里插入图片描述
newVal参数表示在重绘区域像素的新值。
loDiff参数表示当前观察像素值与其部件邻域像素值或待加入该组件的种子像素之间的亮度或颜色之负差的最大值。
upDiff参数表示当前观察像素值与其部件邻域像素值或待加入该组件的种子像素之间的亮度或颜色之正差的最大值。

在floodfill函数中,第二参数是掩膜,掩膜为1的区域被遮盖住了,不能用于泛洪。第二个参数是起始坐标,注意先列后行。第三个坐标是目标颜色,第四个坐标是泛洪的下界,第五个坐标是泛洪的上界(就是能够比第二个参数的像素值大多少),第六个参数是固定的。

参考:https://www.cnblogs.com/loubin/p/12292189.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西北乱跑娃

万水千山总是情,犒赏一下行不行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值