iT邦幫忙

2025 iThome 鐵人賽

DAY 8
0
佛心分享-IT 人自學之術

OpwnCV影像處理新手村系列 第 8

🚀 DAY 8:圖片裁切與 ROI 操作

  • 分享至 

  • xImage
  •  

今天我們來學習如何取得圖片中的特定區域(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 欄)。

透過這種方式,可以快速擷取圖像中任意大小與位置的區域。

選擇區塊並將該區域塗白的輸出圖片如下:
https://ithelp.ithome.com.tw/upload/images/20250910/20129482Oho7wUiCyv.png


✂️ 裁切指定區域 (ROI)

接著,我們裁切該區域,取得指定範圍的影像:

roi = img[100:200, 50:250]  # [y1:y2, x1:x2]
cv2.imshow('ROI', roi)

裁切出來的 ROI 是一張新的圖片,可用於局部分析,例如臉部區域、車牌區域或任何感興趣的部分。

裁切指定區域圖片,輸出結果如下:
https://ithelp.ithome.com.tw/upload/images/20250910/201294822hlbUz5vVB.png


🔄 ROI 常見應用示例

  • 物件追蹤:先裁切出目標區域,再針對該區域進行特徵提取。
  • 特徵分析:在 ROI 中執行邊緣偵測、顏色分析等處理。
  • 視覺辨識:只處理 ROI 部分,降低計算資源消耗。

📌 今日結語

  • 影像裁切是利用 NumPy 陣列切片完成的簡單操作。
  • 可以先選擇區域進行標記(例如塗白),方便視覺確認。
  • ROI 是影像分析中不可或缺的概念,能聚焦目標區域並加速後續處理。
  • 熟練掌握 ROI 的裁切與應用,可有效提升影像處理效率與準確度。

上一篇
🚀 DAY 7:圖片翻轉與旋轉|flip、rotate
下一篇
🚀 DAY 9:圖片邊界與填充|border、padding
系列文
OpwnCV影像處理新手村14
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言