【画像処理】バイリニア補間法の原理・計算式

画像を拡大・縮小・回転したときなどに利用する補間法の1つである「バイリニア補間法」の原理や計算方法についてまとめました。

バイリニア補間法(Bi-linear interpolation)とは

本ページの内容は以下動画で解説しています。

バイリニア補間法(Bi-linear interpolation)は、周囲の4つの画素を用いた補間法です。
最近傍法よりも計算処理は重いですが、画質の劣化を抑えることが出来ます。

バイリニア補間法を用いて、拡大画像の座標(x', y')における画素値を求める手順は以下の通りです。

①拡大画像の座標(x', y')を拡大率\alphaで割り、(x'/\alpha ,y'/\alpha )を求めます。

②元画像における(x'/\alpha ,y'/\alpha )の周囲4画素の画素値I(x,y), I(x+1,y), I(x,y+1), I(x+1, y+1)を取得します。

③周囲4画素それぞれと(x'/\alpha ,y'/\alpha )との距離を求めます。

④距離によって重み付け(0~1)を行います。(距離が小さいほど重みは大きい)

⑤周囲4画素の画素値の加重平均を拡大画像の座標(x', y')における画素値とします。

(1)   \begin{eqnarray*} I'(x', y')&=&(1-dx)(1-dy)I(x,y)+dx(1-dy)I(x+1,y)\\ &+&(1-dx)dyI(x,y+1)+dxdyI(x+1,y+1)\\ \end{eqnarray*}

関連ページ

PythonとOpenCVを用いてバイリニア補間法を実装する方法について以下ページで解説しています。

【Python/OpenCV】バイリニア補間法で画像の拡大・縮小(cv2.resize)
Python版OpenCVのcv2.resizeでバイリニア補間法を実装し、画像のサイズを変更(拡大・縮小)する方法をソースコード付きで解説します。

PythonとOpenCVを用いた画像処理全般については以下ページで解説しています。

【Python版OpenCV入門】画像処理の基礎〜応用例までサンプルコード付きで徹底解説
Python版OpenCVで画像処理プログラミングを行う方法を入門者向けにソースコード付きで解説するページです。

他の画像処理アルゴリズムについては、以下ページでまとめています。

画像処理
「画像処理」の記事一覧です。
この記事を書いた人
西住技研

学生時代はシステム制御理論や画像処理、機械学習を専攻分野として研究していました。就職後もプログラミング(Python)を活用したデータ分析や作業自動化に取り組み、現在に至ります。そこで得たノウハウをブログで発信しています。
YoutubeX(旧Twitter)でも情報発信中です

西住技研をフォローする
画像処理

コメント