Python_Opencv8_ROI与泛洪处理

import cv2 as cv
import numpy as np

def fill_color_demo(image):#彩色图像填充。泛洪算法 1.基于扫描的2.基于递归的 一般而言基于扫描的速度快
    copying=image.copy()                                      #复制一张图片
    h,w=image.shape[:2]                                       #取shape的前两个值,分别付给h,w.shape[0]=h,shape[1]=w
    mask=np.zeros([h+2,w+2],np.uint8)      #必须这样!保证周边元素都被处理
    #从(30,30)开始,填充成(0,255,255),(100,100,100)需要填充的最低像素值为(30,30)-(100,100),高值(30,30)+(50,50)
    cv.floodFill(copying,mask,(30,30),(0,255,255),(100,100,100),(50,50,50),cv.FLOODFILL_FIXED_RANGE)
    cv.imshow("fill_color_demo",copying)


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)    #需要单通道,8位
    mask[101:301,101:301]=0   #需要初始化的地方位1,填充的地方初始化位0
    cv.floodFill(image,mask,(200,200),(0,0,255),cv.FLOODFILL_MASK_ONLY)#只有不为1的地方才会被填充

print('---Hello Python-----')
src=cv.imread('E:/aaaxuexi/python_z/zhanglaoshi/lianxi/liuyifei.jpg')
cv.imshow('xiaojiejie',src)
'''
face=src[120:380,230:450]   #先是高度关系,后是宽度关系   120-300  230  450
cv.imshow("show",face)
gray=cv.cvtColor(face,cv.COLOR_BGR2GRAY)
backface=cv.cvtColor(gray,cv.COLOR_GRAY2BGR)
src[120:380,230:450]=backface
cv.imshow('face',src)

backface=cv.cvtColor(gray,cv.COLOR_BAYER_GB2RGB)
'''
#fill_color_demo(src)
fill_binary()
cv.waitKey(0)
cv.destroyAllWindows()

猜你喜欢

转载自blog.csdn.net/mnhdxhcky/article/details/81203352