本文主要是介绍OpenCV——06ROI与泛洪填充,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
OpenCV——06ROI与泛洪填充
ROI与泛洪填充
- ROI
- ROI是什么
- 怎么获取
- 泛洪填充
- 泛洪填充是什么
- 开始点怎么选择
- 泛洪填充的用途
1.ROI
ROI(Region of interest):感兴趣区域。机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,ROI
怎么获取:通过numpy指定区域获取
# -*- coding:utf-8 -*-
import cv2 as cv
import numpy as np# 读取图片
src = cv.imread("D:\Python\Projects\OpenCV_toturial\images\lena.png")
# 创建opencv的GUI窗口
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
# 将图片放入指定名字的窗口中显示出来
cv.imshow("input image", src)face = src[200 : 400, 200 : 400]
gray = cv.cvtColor(face, cv.COLOR_RGB2GRAY)
# cv.imshow("face", face)
# cv.imshow("gray", gray)
backface = cv.cvtColor(gray, cv.COLOR_GRAY2BGR)
src[200 : 400, 200 : 400] = backface
cv.imshow("src", src)# 设置waitKey中的delay为0,程序会等待用户操作后关闭窗口
cv.waitKey(0)
cv.destroyAllWindows()
2.泛洪填充
泛洪填充:由一个点开始,迭代或者递归寻找这个区域里面有相同值的所有的点并进行填充,或者是在这个区域中填充到直到与给定值不同的边界线为止
泛洪填充的用途:图形对象的自动填充技术等
# -*- coding:utf-8 -*-
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) # mask的固定写法,h+2,w+2可理解为每次向外位移一个像素,保证周边像素都能被处理# 填充起始位置 填充值 最低的像素范围 最高范围(加上起始点的像素值) 填充方法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)# 二值图像的填充
def fill_binary_demo():image = np.zeros([400, 400, 3], np.uint8)image[100 : 300, 100 : 300, :] = 255cv.imshow("fill_binary_demo1", image)mask = np.ones([402, 402], np.uint8) # mask区域设置为1mask[101 : 301, 101 : 301] = 0 # 选择填充的区域设置为0cv.floodFill(image, mask, (200, 200), (0, 255, 255), cv.FLOODFILL_MASK_ONLY)cv.imshow("fill_binary_demo2", image)# 读取图片
src = cv.imread("D:\Python\Projects\OpenCV_toturial\images\lena.png")
# fill_color_demo(src)
fill_binary_demo()
彩色图像填充:
二值图像填充:
这篇关于OpenCV——06ROI与泛洪填充的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!