OpenCV を使用した画像のサイズ変更 |パイソン
画像のサイズ変更とは、画像の拡大縮小を指します。スケーリングは、機械学習アプリケーションだけでなく、多くの画像処理でも役立ちます。画像からピクセル数を減らすのに役立ち、いくつかの利点があります。画像内のピクセル数が増えると入力ノードの数も増え、モデルの複雑さが増すため、ニューラル ネットワークのトレーニング時間を短縮できます。
画像の拡大にも役立ちます。多くの場合、画像のサイズを変更する必要があります。つまり、サイズ要件を満たすために画像を縮小または拡大する必要があります。 OpenCV は、画像のサイズを変更するためのいくつかの補間方法を提供します。
サイズ変更のための補間方法の選択:
- cv2.INTER_AREA: これは、画像を縮小する必要がある場合に使用されます。
- cv2.INTER_CUBIC: これは遅いですが、より効率的です。
- cv2.INTER_LINEAR: これは主にズームが必要な場合に使用されます。これは、OpenCV のデフォルトの補間手法です。
構文: cv2.resize(source、dsize、dest、fx、fy、補間)
パラメーター:
- source: 入力画像配列 (シングルチャネル、8 ビットまたは浮動小数点) dsize: 出力配列のサイズ dest: 出力配列 (入力画像配列の次元と型と同様) [オプション] fx: スケール係数水平軸 [オプション] fy: 垂直軸に沿ったスケール係数 [オプション] interpolation: 上記のいずれかの補間方法 [オプション]
サイズを変更するコードは次のとおりです。
Python3
import> cv2> import> numpy as np> import> matplotlib.pyplot as plt> image> => cv2.imread(r> 'D:simsebsim21EB-ML-06-10-2022-Test-Output-15PERFORATIONOverkillFailBlister 1 2022-03-12 12-59-43.859 T0 M0 G0 3 PERFORATION Mono.bmp'> ,> 1> )> # Loading the image> half> => cv2.resize(image, (> 0> ,> 0> ), fx> => 0.1> , fy> => 0.1> )> bigger> => cv2.resize(image, (> 1050> ,> 1610> ))> stretch_near> => cv2.resize(image, (> 780> ,> 540> ),> > interpolation> => cv2.INTER_LINEAR)> Titles> => [> 'Original'> ,> 'Half'> ,> 'Bigger'> ,> 'Interpolation Nearest'> ]> images> => [image, half, bigger, stretch_near]> count> => 4> for> i> in> range> (count):> > plt.subplot(> 2> ,> 2> , i> +> 1> )> > plt.title(Titles[i])> > plt.imshow(images[i])> plt.show()> |
出力:
注記: cv2.resize() 関数を使用する際に留意すべき点の 1 つは、新しい画像のサイズ (この場合は (1050, 1610)) を決定するために渡されるタプルは、予想とは異なり順序 (幅、高さ) に従っていることです (高さ、幅)。