次回より『ヒデログ』とご検索ください

【Python入門】5分で分かるOpenCVのresizeで画像サイズを変える方法

この記事ではPythonのOpenCVのresize(画像のサイズ変更)の方法を紹介します。
OpenCVの導入の仕方は、以下の記事を参考にしてください。
【Python入門】OpenCVの読み込み・書き込みの方法

OpenCVでresize

この記事では、以下の画像に対して操作を行います。
opencv

shapeメソッド

まずは、resizeする前に画像の形を確認しておきましょう。

# cv2をインポート
import cv2
# imreadメソッドで画像の読み込み
img=cv2.imread("pc.jpg")
# (Y軸,X軸,カラー(RGB))
img.shape
>>(206, 320, 3)

# 高さ
height = img.shape[0]
# 幅
width = img.shape[1]

###################
# imgの関連メソッド
###################
# 要素数
img.size
# 206x320x3
>>197760

# 要素タイプ
img.dtype
# 要素は全て符号なしの整数なので
>>dtype('uint8')

shapeメソッドは画像ファイルの形と色の種類を表示します。

resizeメソッド

cv2のresizeメソッドの使い方を紹介します。resizeは多くの引数を取りますが、基本的には以下の3つの方法を理解しておけばまずは問題ありません。

# resizeまとめ、その他の引数のありますが、まずはこれの形を覚えよう
cv2.resize(img, dsize=(x軸の値, Y軸の値))
cv2.resize(img, (x軸の値, Y軸の値))
cv2.resize(img, None, fx=x軸の乗数, fy=y軸の乗数)
import cv2

img=cv2.imread("pc.jpg")

# dsize=(x軸, Y軸)
img_dize=cv2.resize(img, dsize=(img.shape[1]//3, img.shape[0]//2))
# 'dsize='は省略可能
img_dize=cv2.resize(img, (img.shape[1]//3, img.shape[0]//2))
# (Y軸,X軸,カラー)
img_dize.shape
>>(103, 106, 3)

img_fxfy=cv2.resize(img, None, fx=1/3, fy=1/2)
img_fxfy.shape
# 計算上小数点処理で106と107と異なるがほぼ同じ結果
>>(103, 107, 3)

# resizeした画像ファイルを保存、以下の実行結果で表示してます。
cv2.imwrite("pc_small.jpg", img_fxfy)
実行結果
Opensv resize

まとめ

OpenCVでresizeをする方法を紹介しました。画像を好きな形に変換できる手法になります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です