openCv学习记录5

准备工作:
导入两个包
准备一张图片

import cv2 as cv
import numpy as np
src=cv.imread("C:/Users/admin/Pictures/zyl/Tes1.jpg")
cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
cv.imshow("input image",src)

ROI(感兴趣区域)

获取截来的图片,改变颜色,并把它和原图合为一体

#计算图片的大小
print(src.shape)
#ROI区域
#src[图片区域的高度范围,宽度范围]
face=src[100:500,300:800]
#把截取的图片变成灰度颜色
gray=cv.cvtColor(face,cv.COLOR_BGR2GRAY)
#再把截取的灰色图片转换成BGR格式
backface= cv.cvtColor(gray,cv.COLOR_BAYER_BG2BGR)
#BGR格式图片在传给src原图
src[100:500,300:800]=backface
#显示截取的灰色图片和正常图片的叠加
cv.imshow("face",src)

泛洪填充

填充方式:
在这里插入图片描述

cv.FLOODFILL_FIXED_RANGE:改变图像,泛红填充
cv.FLOODFILL_MASK_ONLY:不改变图像,只有、填充遮罩层本身、忽略新的颜色值参数
方式一 指定颜色填充

#1.先定义一个彩色图像
def fill_color_demo(image):
    #复制一个图片
    copyImg=image.copy()
    #获取这个图片的高宽
    h,w=image.shape[:2]
    #大小固定这么写
    mask=np.zeros([h+2,w+2],np.uint8)
    #floodFill( 1.操作的图像, 2.掩模, 3.起始像素值,4.填充的颜色, 5.填充颜色的低值, 6.填充颜色的高值 ,7.填充的方法)
    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)
fill_color_demo(src)

方式二 指定位置填充

def fill_bimzry():
    #创建一个窗体
    image=np.zeros([400,400,3],np.uint8)
    #给高度100到300,宽度100到300,变颜色(白)
    image[100:300,100:300, : ]= 255
    #显示
    cv.imshow("fill_bimzry",image)

    #创建一个正方形单通道的窗体给mask
    mask=np.ones([400+2,400+2,1],np.uint8)# 遮罩层设为1 这个加2和uint8都是固定的
    #遮罩层中要填充的区域设置
    mask[101:301,101:301]=0
    #填充方法为仅仅在mask的区域激进行  这种方法要mask设为1  填充的mask区域必需是0.  原理是不为1的才会被填充
    # floodFill(1.操作的图像, 2.掩模,3.填充颜色的低值, 4.填充颜色的高值,5.填充的方法)
    cv.floodFill(image,mask,(200,200),(0,0,255),cv.FLOODFILL_FIXED_RANGE)
    #显示
    cv.imshow("fill bimzry",image)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值