python-opencv 노트 5

1732 단어
ROI
: range of interest
import cv2 as cv
import numpy as np


def pro(image):    #           。。
    flag = image[175:335,130:190]
    gray = cv.cvtColor(flag,cv.COLOR_BGR2GRAY)
    new_flag = cv.cvtColor(gray,cv.COLOR_GRAY2BGR)
    image[175:335, 130:190] = new_flag
    cv.imshow("new",image)          


def fill_color(image):    
    copy_image = image.copy()
    h ,w =image.shape[:2]
    mask = np.zeros([h+2,w+2],np.uint8)     #+2   
    cv.floodFill(copy_image, mask, (150,320), (0,255,255), (100,100,100), (50,50,50), cv.FLOODFILL_FIXED_RANGE)
    cv.imshow("filled",copy_image)

물을 채우다
mask: 마스크, 단일 채널, 8위, [h+2, w+2]
cv.floodFill(copy_image, mask, (150,320), (0,255,255), (100,100,100), (50,50,50), cv.FLOODFILL_FIXED_RANGE)
(150320):seedpoint, 충전 시작부(0255255): 충전 후의 색깔(100100100), (50,50,50):seedpoint의 픽셀 값에 비해 충전된 픽셀은 조건을 충족시키고 부동 범위의 하, 상한 cv.FLOODFILL_FIXED_RANGE:flag
즉, cv.floodFill(원도, mask, seedpoint, 목표 색상, 부동 하한선, 부동 상한선, cv.FLOODFILL FIXED RANGE)
def mask_fill():    
    image = np.zeros([400,400,3],np.uint8)
    image[100:300,100:300,:] = 255
    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("mask_filled",image)

mask 채우기
mask=0의 영역 cv를 채웁니다.floodFill(원도, mask, seedpoint, 목표 색상, cv.FLOODFILL MASK ONLY) #seedpoint는mask=0의 범위 내에서
print("---------Hello Python---------")
src = cv.imread("D:/sourses/picture/001.jpg")
cv.namedWindow("image", cv.WINDOW_NORMAL)
cv.imshow("image", src)
mask_fill()
cv.waitKey(0)
cv.destroyAllWindows()

좋은 웹페이지 즐겨찾기