今天我們來學習如何取得圖片中的特定區域(ROI:Region of Interest)。
ROI 是影像中我們特別關注的部分,常用於放大、分析或後續處理。
和前幾天一樣,準備一張彩色圖片(image.jpg)放在同一資料夾:
import cv2
img = cv2.imread('image.jpg')
為了讓圖片停留方便觀察,記得最後要加上這段:
cv2.waitKey()
cv2.destroyAllWindows()
有時我們想標示某個區域,或遮蔽該區域,可以直接將該區塊像素設為白色:
# 將 y=100~200,x=50~250 的區域全部設為白色 (255, 255, 255)
img[100:200, 50:250] = (255, 255, 255)
cv2.imshow('Image with White Block', img)
100:200
表示垂直方向(高度)從第 100 行切到第 199 行(不包含第 200 行),50:250
表示水平方向(寬度)從第 50 欄切到第 249 欄(不包含第 250 欄)。透過這種方式,可以快速擷取圖像中任意大小與位置的區域。
選擇區塊並將該區域塗白的輸出圖片如下:
接著,我們裁切該區域,取得指定範圍的影像:
roi = img[100:200, 50:250] # [y1:y2, x1:x2]
cv2.imshow('ROI', roi)
裁切出來的 ROI 是一張新的圖片,可用於局部分析,例如臉部區域、車牌區域或任何感興趣的部分。
裁切指定區域圖片,輸出結果如下: