Python opencv(三) ROI与泛洪填充

前提条件

使用工具python3.x
使用库numpy;opencv,

api简介

1.cv.floodFill
对所选某一区域进行填充颜色,参数解释具体看代码

代码示例

import cv2 as cv
import numpy as np

def fillColorDemo(image):#泛洪填充
	copyImg = image.copy() #图片复制
	h, w = image.shape[:2]
	mask = np.zeros([h+2, w+2],np.uint8) 
	#图片,起始填充的位置,填充完后新的值(就是想填充的颜色),填充范围的低值,填充范围的高值
	cv.floodFill(copyImg, mask, (30, 30), (0, 255, 255), (100,100,100),(50,50,50), cv.FLOODFILL_FIXED_RANGE)
	#给颜色值在(30, 30)+(100,100,100)~~~(30, 30)+(50,50,50)范围内填充黄色
	cv.imshow('fill_color_demo',copyImg)


def fillBinary():
	image = np.zeros([400,400,3], np.uint8)
	image[100:300, 100:300, :]=255
	cv.imshow('fill_binary', image) #原图

	mask = np.ones([402,402,1], np.uint8) #只有一层颜色,单通道
	mask[101:301, 101:301]=0 #对领部分填充
	#(0,0,255)填充成的颜色
	cv.floodFill(image, mask, (200,200), (0,0,255),cv.FLOODFILL_MASK_ONLY)
	cv.imshow('filled binary',image) #对图像进行填充


src=cv.imread("D:/openCV_image/image/1.png")
# print(src)
# cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
# cv.imshow("input image",src)
# #显示部分头像
# face = src[20:150, 50:200]
# cv.imshow("face", face)
# #变灰度图像
# gray = cv.cvtColor(face, cv.COLOR_BGR2GRAY)
# cv.imshow("gray", gray)

# #把灰度图像还原回来
# backface = cv.cvtColor(gray, cv.COLOR_GRAY2BGR) #图片,宏定义值
# src[20:150, 50:200] = backface #同理也可以将结果返回大图去
# cv.imshow("backface", backface)

# fillColorDemo(src) #泛洪填充
fillBinary()

cv.waitKey(0)
cv.destroyAllWindows()


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值