【python】OpenCVで画像を指定した倍率で縮小する方法

Python

デジカメやスマホで撮影した画像を張り付けてパワポを作成すると、パワポのサイズが大きくなりすぎる。
ファイルを開くのに時間がかかるので、サイズを小さくしたい。
メールに添付できる上限サイズが決まっているのでサイズを小さくしたい。
というときに、画像を一括でサイズダウンするコードを作成した。

対象の画像

オリジナル画像

import cv2
from IPython.display import Image, display

def imshow(img):
    """ndarray 配列をインラインで Notebook 上に表示する。
    """
    ret, encoded = cv2.imencode(".jpg", img)
    display(Image(encoded))

# 画像を読み込む。
img = cv2.imread("sample.jpg")

# 指定した倍率でリサイズする。
dst = cv2.resize(img, dsize=None, fx=0.5, fy=0.5)

print(f"{img.shape} -> {dst.shape}")
imshow(dst)`

倍率0.5倍に縮小した画像
画像が小さくなっている。つまり同じ大きさに引き延ばした時に解像度が落ちるので、データサイズが小さくなっている。
サイズ0.5倍

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