Python版OpenCVのcv2resizeで最近傍補間法、バイリニア補間法、バイキュービック補間法を実装し、画像のサイズを変更(拡大・縮小)する方法をソースコード付きで解説します。
## 【画像の拡大・縮小】最近傍補間法
画像を拡大・縮小するときの画素の埋め方の1つに「最近傍補間法」があります。
原理については「最近傍補間法による画像拡大の原理」で紹介しています。
今回は、以下の2通りの方法で処理を実装してみました。
方法①・・・NumPyでアルゴリズムを書いて実装
方法②・・・OpenCV(cv2.resize)で実装
動画解説
cv2.resize
dst = cv2.resize(src, dsize[, interpolation])
パラメータ名 | 説明 |
---|---|
src | 入力画像 |
dsize | 変更後の画像サイズ |
interpolation | 補間法(最近傍補間ならcv2.INTER_NEAREST) |
dst | 出力画像 |
サンプルコード
サンプルプログラムのソースコードです。(画像サイズを2倍)
方法①
方法①
サンプルプログラムの実行結果です。
■入力画像(左)と出力画像(右)
## 【画像の拡大・縮小】バイリニア補間法
画像を拡大・縮小するときの画素の埋め方の1つに「バイリニア補間法」があります。
原理については「バイリニア補間法による画像拡大の原理」で紹介しています。
今回は、以下の2通りの方法で処理を実装してみました。
方法①・・・NumPyでアルゴリズムを書いて実装
方法②・・・OpenCV(cv2.resize)で実装
動画解説
cv2.resize
dst = cv2.resize(src, dsize[, interpolation])
パラメータ名 | 説明 |
---|---|
src | 入力画像 |
dsize | 変更後の画像サイズ |
interpolation | 補間法(バイリニア補間ならcv2.INTER_LINEAR) |
dst | 出力画像 |
ソースコード
サンプルプログラムのソースコードです。(画像サイズを2倍)
方法①
方法①
実行結果
サンプルプログラムの実行結果です。
■入力画像(左)と出力画像(右)
最近傍補間法でリサイズした時に比べて輪郭のギザギザが滑らかになります。

## 【画像の拡大・縮小】バイキュービック補間法
画像を拡大・縮小するときの画素の埋め方の1つに「バイキュービック補間法」があります。
原理については「バイキュービック補間法による画像拡大の原理」で紹介しています。
今回は、以下の2通りの方法で処理を実装してみました。
方法①・・・NumPyでアルゴリズムを書いて実装
方法②・・・OpenCV(cv2.resize)で実装
動画解説
cv2.resize
dst = cv2.resize(src, dsize[, interpolation])
パラメータ名 | 説明 |
---|---|
src | 入力画像 |
dsize | 変更後の画像サイズ |
interpolation | 補間法(バイキュービック補間ならcv2.INTER_CUBIC) |
dst | 出力画像 |
サンプルコード
サンプルプログラムのソースコードです。(画像サイズを2倍)
方法①
方法①
実行結果
サンプルプログラムの実行結果です。
■入力画像(左)と出力画像(右)
最近傍補間法でリサイズした時に比べて輪郭のギザギザが滑らかになっていることがわかります。



コメント