python图像自动填充颜色算法_Python3 OpenCV3图像处理-ROI和泛洪填充

本文介绍了ROI(感兴趣区域)在图像处理中的概念和应用,以及泛洪填充算法的工作原理和在Python中使用OpenCV实现的方法。通过示例代码展示了如何使用floodFill函数进行颜色填充,并提供了不同填充方法的解释。
摘要由CSDN通过智能技术生成

ROI(region of interest),感兴趣区域。机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,ROI。在Halcon、OpenCV、Matlab等机器视觉软件上常用到各种算子(Operator)和函数来求得感兴趣区域ROI,并进行图像的下一步处理。

泛洪填充算法(Flood Fill Algorithm)

泛洪填充算法又称洪水填充算法是在很多图形绘制软件中常用的填充算法,最熟悉不过就是

windows paint的油漆桶功能。算法的原理很简单,就是从一个点开始附近像素点,填充成新

的颜色,直到封闭区域内的所有像素点都被填充新颜色为止。泛红填充实现最常见有四邻域

像素填充法,八邻域像素填充法,基于扫描线的像素填充方法。根据实现又可以分为递归与

非递归(基于栈)。

泛洪填充

如何填充一个对象内部区域

- FLOODFILL_FIXED_RANGE – 改变图像,泛洪填充

- FLOODFILL_MASK_ONLY – 不改变图像、只填充遮 罩层本身、忽略新的颜色值参数

 floodFill(Mat image, Mat mask, Point seedPoint, Scalar newVal)

 floodFill(image, mask, seedPoint, newVal, rect, loDiff, upDiff, flags) src(seed.x, seed.y)- loDiff <= src(x,y) <= src(seed.x, seed.y)+ upDiff

代码:

import cv2 as cv

import numpy as np

def fill_color_demo(image):

copyImg = image.copy()

h, w = image.shape[:2]

mask = np.zeros([h+2, w+2], np.uint8

#cv.floodFill(图片,遮盖层,起始位置,填充颜色,低值,高值,填充方法)

cv.floodFill(copyImg, mask, (30,30), (0, 255, 255), (100, 100, 100), (50, 50, 50), cv.FLOODFILL_FIXED_RANGE)

cv.imshow("fill_color_demo", copyImg)

src = cv.imread("src/fish.jpg")

cv.namedWindow("import image", cv.WINDOW_AUTOSIZE)

cv.imshow("import image", src)

"""

face = src[50:250, 100:300]

gray = cv.cvtColor(face, cv.COLOR_BGR2GRAY)

backface = cv.cvtColor(gray, cv.COLOR_GRAY2BGR)

src[50:250, 100:300] = backface

cv.imshow("face", src)

"""

fill_color_demo(src)

cv.waitKey(0)

cv.destroyAllWindows()

效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值