OpenCV(Python)画像の拡大・縮小

サイズ指定の例

サイズを指定する場合

cv2.resize(img,(width,height))
  • 第1引数: 画像
  • 第2引数: リサイズしたい(幅, 高さ)のタプル

使用例

import cv2
img = cv2.imread('img.jpg')
width, height = 640, 480
img = cv2.resize(img,(width,height))
cv2.imwrite('img-resize.jpg',img)

画像を幅:640、高さ:480で保存します。

倍率を指定する場合

cv2.resize(img,fx,fy)
  • 第1引数: 画像
  • 第2引数: リサイズしたい幅の倍率
  • 第3引数: リサイズしたい高さの倍率

使用例

import cv2
img = cv2.imread('img.jpg')
img = cv2.resize(img,0.5,0.5)
cv2.imwrite('img-half.jpg',img)

画像を半分のサイズにして保存します。

高度なリサイズ方法

cv2.resize(img,(width,height),fx,fy,interpolation)

interpolationを指定することで拡大・縮小の補完方法を指定することができます。

interpolationの一覧

  • cv2.INTER_NEAREST: 最近傍補間
  • cv2.INTER_LINEAR: バイリニア補間(デフォルト)
  • cv2.INTER_AREA: 平均画素法
  • cv2.INTER_CUBIC: 4×4 の近傍領域を利用するバイキュービック補間
  • cv2.INTER_LANCZOS4: 8×8 の近傍領域を利用する Lanczos法の補間

下の補完方法になるにつれて計算量が増えますが画像がなめらかになります。

pillow, PILによる画像のリサイズ

pillowによる画像のリサイズについても下記の記事で解説しています。

https://www.tech-tech.xyz/archives/python-img-resize.html

コメント

タイトルとURLをコピーしました