Python-OpenCV图像处理-05-ROI和泛洪填充

日常学习包括这两个包 

import cv2 as cv
import numpy as np

RIO操作:

ROI(region of interest)选择就是在图像中选择自己想要选择的部分进行操作
比如将一个图片粘到另一张图片的某个地方
一般是矩形
获取RIO区域   np:

这里的代码是用于获取rio区域,然后对获取区域进行操作然后回填

src =cv.imread("C:\\Users\\william\\Pictures\\go.jpg")
cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
cv.imshow("input image",src)
face =src[40:150,110:300]
gray =cv.cvtColor(face,cv.COLOR_BGR2GRAY)
backface =cv.cvtColor(gray,cv.COLOR_GRAY2BGR)
src[40:150,110:300]=backface
cv.imshow("face",src)

泛洪填充:

通俗解释:floodFill( 1.操作的图像, 2.掩模, 3.起始像素值,4.填充的颜色, 5.填充颜色的低值, 6.填充颜色的高值 ,7.填充的方法)  

彩色图片:

#泛洪填充
def fill_color_demo(image):
    copyimg =image.copy()
    h,w =image.shape[:2]
    mask =np.zeros([h+2,w+2],np.uint8)
    cv.floodFill(copyimg,mask,(100,100),(0,255,255),(100,110,110),(300,300,300),cv.FLOODFILL_FIXED_RANGE)

二值图片:

def fill_binary():
    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
    cv.floodFill(image,mask,(200,200),(0,0,255),cv.FLOODFILL_MASK_ONLY)
    cv.imshow("filled_binary", image)
#FLOODFILL_MASK_ONLY 不改变图像,只填充遮罩层本身

猜你喜欢

转载自blog.csdn.net/weixin_41445387/article/details/86602583
今日推荐