本篇介紹如何使用 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 基本讀取、顯示與儲存圖片教學。
參考資料:StackOverflow