今天我們來學習如何調整圖片大小,這在影像處理中非常常見,例如縮小圖片以加快運算速度,或將不同大小的圖片統一尺寸。
和前幾天一樣,準備一張彩色圖片(image.jpg)放在同一資料夾:
import cv2
img = cv2.imread('image.jpg')
為了讓圖片停留讓我們可以觀察,記得最後要加上這段。
cv2.waitKey()
cv2.destroyAllWindows()
先介紹一下 cv2.resize() 函數語法:
cv2.resize(src, dsize, fx=..., fy=..., interpolation=...)
使用 cv2.resize() 調整圖片大小範例:
print("圖片尺寸:", img.shape)
resized = cv2.resize(img, (500, 150)) # 指定新尺寸 (寬, 高)
cv2.imshow("My Image", img)
cv2.imshow('Resized', resized)
此範例中,我們先用 img.shape 查看圖片尺寸,假設輸出是 (300, 400, 3),
代表原圖尺寸是高度 300 像素,寬度 400 像素,有 3 個通道(BGR)。
範例中將圖片尺寸改成寬 500 像素、高 150 像素,並分別顯示原圖與調整後圖片。
圖片示意如下:
可見直接調整尺寸可能會造成圖片變形和失真。
你也可以將滑鼠移到圖片右下角(黃圈位置),透過座標查看實際尺寸變化。
若要按比例縮放圖片,可以利用 fx 與 fy 參數:
scaled_smaller = cv2.resize(img, None, fx=0.5, fy=0.5) # 寬、高各縮小一半
scaled_bigger = cv2.resize(img, None, fx=2.0, fy=2.0) # 寬、高各放大一倍
scaled_other = cv2.resize(img, None, fx=0.5, fy=2.0) # 寬縮小一半,高放大一倍
cv2.imshow("My Image", img)
cv2.imshow('Scaled Smaller', scaled_smaller)
cv2.imshow('Scaled Bigger', scaled_bigger)
cv2.imshow('Scaled Other', scaled_other)
此處第二個參數 None 表示不指定明確尺寸,OpenCV 會根據 fx 和 fy 自動縮放。
按比例縮放能避免圖片變形,保持寬高比。
縮放後的圖片示意:
掌握圖片尺寸調整與縮放是影像前處理的重要環節,對後續分析與處理都有幫助!