本篇介紹如何使用 Python 的 OpenCV 模組裁切圖片,取出部份的區域另存成新圖檔。
OpenCV 是一個普遍被使用影像處理函式庫,以下介紹如何裁切 OpenCV 的圖片,擷取圖片中部份的區域,顯示在螢幕上或是儲存為圖檔。
OpenCV 裁切圖片
我們拿這張萊娜圖作為範例,示範如何裁切 OpenCV 的圖片。

首先按照普通的方式,將圖片用 OpenCV 的 imread 函數讀取進來:
import cv2
# 讀取圖檔
img = cv2.imread("lena.jpg")
這裡用 OpenCV 讀取進來的圖片 img 其實就是 NumPy 的陣列,如果想要對圖片進行裁切,就用索引的方式,將指定的區域取出即可:
# 裁切區域的 x 與 y 座標(左上角)
x = 100
y = 100
# 裁切區域的長度與寬度
w = 250
h = 150
# 裁切圖片
crop_img = img[y:y+h, x:x+w]
接著使用 OpenCV 的 imshow 顯示裁切的結果:
# 顯示圖片
cv2.imshow("cropped", crop_img)
cv2.waitKey(0)
執行的結果如下:

儲存 OpenCV 圖片
若要將裁切的圖片儲存下來,可使用 imwrite 函數:
# 寫入圖檔
cv2.imwrite('crop.jpg', crop_img)
這樣就可以將 crop_img 這個裁切好的圖片儲存至 crop.jpg 檔案中了。
關於 OpenCV 基本的圖檔讀取與儲存,可以參考 Python 與 OpenCV 基本讀取、顯示與儲存圖片教學。
