スポンサーリンク

OpenCVで画像をリサイズ(拡大・縮小)するcv2.resize【Python】

Image

OpenCVで像をリサイズ(拡大・縮小)するには、cv2.resizeを使う。

cv2.resizeの使い方

今回用いるサンプル画像をWEBからダウロード、保存します。

関連記事 – 【最速】PythonでWEB上の画像をダウンロードして保存する【Requests】

import requests
import cv2
import matplotlib.pyplot as plt

url = "https://github.com/opencv/opencv/blob/master/samples/data/butterfly.jpg?raw=true"
file_name = "butterfly.jpg"

response = requests.get(url)
image = response.content

with open(file_name, "wb") as f:
    f.write(image)

image = cv2.cvtColor(cv2.imread("butterfly.jpg"), cv2.COLOR_BGR2RGB)
print(image.shape)
# (356, 493, 3)

plt.imshow(image);

cv2.resizeの第一引数srcにndarray配列を、第二引数のdstに出力の大きさを(幅、高さ)で指定する。

image_re = cv2.resize(src=image, dsize=(100, 200))

print(image_re.shape)
# (200, 100, 3)

plt.imshow(image);

引数fx(幅)、fy(高さ)を指定することによって、元の画像のサイズの倍率でリサイズすることができる。

image_re2 = cv2.resize(src=image, dsize=None, fx=2, fy=1)

print(image_re2.shape)
# (356, 986, 3)

plt.imshow(image_re2);

リサイズの補間方法について

リサイズ時の補間方法は、デフォルトでINTER_LINEAR指定されている。他の補間方法を使いたい場合は、引数interpolationを指定する。指定できる補間方法は以下の10つである。

  • INTER_NEAREST
  • INTER_LINEAR
  • INTER_CUBIC
  • INTER_AREA
  • INTER_LANCZOS4
  • INTER_LINEAR_EXACT
  • INTER_NEAREST_EXACT
  • INTER_MAX
  • WARP_FILL_OUTLIERS
  • WARP_INVERSE_MAP

関連記事、参考資料

コンピュータビジョンライブラリの定番、OpenCVによる画像・動画処理をPythonで行う方法について解説した書籍。ディープラーニングを利用した解析の例も紹介しています。


Pythonで始めるOpenCV 4プログラミング

コメント