python-ROI與泛洪填充
阿新 • • 發佈:2021-01-23
python-ROI與泛洪填充
ROI(Region of Interest)
"""
ROI:ROI(Region of Interest):感興趣的區域,通官numpy進行操作,指定區域
"""
import cv2
# ROI(Region of Interest):感興趣的區域,通官numpy進行操作,指定區域
img1 = cv2.imread('clock.png',1)
ROIarea = img1[50:100,100:150] # 感興趣的區域
cv2.imshow('ROIarea',ROIarea)
cv2.waitKey(0)
cv2.destroyAllWindows()
import cv2
import numpy as np
# 泛洪填充
img1 = cv2.imread('clock.png',1)
img2 = img1.copy()
h,w = img2.shape[:2]
mask = np.zeros([h+2,w+2],np.uint8) # 固定格式
# img2表示圖片,mask表示遮罩,(50,50)表示起始位置,(255,0,0)表示填充顏色,(100,100,100)指的是從圖片當前畫素減去括號裡的值,表示最低範圍
# ,(60,60,50)指的是從圖片當前畫素加上括號裡的值,表示最高範圍,cv2.FLOODFILL_FIXED_RANGE表示填充方法選擇,有兩種:FLOODFILL_FIXED_RANGE改變影象
# FLOODFILL_MASK_ONLY不改變影象,只填充遮罩層本身,忽略新的顏色值引數
cv2.floodFill(img2,mask,(50,50),(255,0,0),(100,100,100),(60,60,50),cv2.FLOODFILL_FIXED_RANGE)
cv2.imshow('img2',img2)
cv2.waitKey(0)
cv2.destroyAllWindows()
import cv2
import numpy as np
# 二級區域填充
img3 = np.zeros([400,400,3],np.unit8)
img3[100:300,:,100:300]=255
cv2.imshow('fill_binary',img3)
mask = np.ones([402,402,1],np.units)
mask[101:301,:,101:301]=0
cv2.floodFill(img3,mask,(200,200),(100,100,100),cv2.FLOODFILL_MASK_ONLY) # FLOODFILL_MASK_ONLY填充
cv2.imshow('fill_binary',img3)
cv2.waitKey(0)
cv2.destroyAllWindows()