内挿法

内挿法

ようやく画像処理の授業が幾何学変換に入り、
面白くなってきたので、ちょっとメモ書き。
 
画像の拡大処理について考えてみます。
 
拡大をする場合には、

  1. 拡大後のサイズを持った画像のバッファを作る
  2. そのサイズで(x,y)のループをする
    1. 元の画像に対応する色をセットする

という流れになるのですが、
ポイントは、
「元の画像に対応する色をセットする」
というところですね。
 
画像を拡大することを「順変換」というのですが、
拡大後の画像から元の画像に変換することを「逆変換」といいます。
 
先ほどのループの
「元の画像に対応する色をセットする」
という部分は、
言い換えると、
「拡大後の画像の座標から、それに対応する元の画像の座標にある色を取得する」
という処理と言えるます。
 
つまり「逆変換」だったのです!
 
 
で、ようやく「内挿法」についてなのですが…(やっとかい!
以上の方法で、拡大画像から単純に「逆変換」を行うと、
ちょっと問題があります。
 
例えば、2倍に拡大後の座標で、
(0, 0)であれば、(0/2, 0/2)で(0, 0)にある色をセットすればいいことになります。
しかし、(1, 1)を逆変換すると(1/2, 1/2)で(0.5, 0.5)となり、
例のように歯抜けの画像になってしまいます。
 
これは見苦しいので、この歯抜けをなんとかしなければなりませんよね。
 
そこで発明されたのが、「内挿法」なのです!(シャキーン)
 
内挿法には、

  • 最近隣内挿法
  • 共一次内挿法

という方法があります。
 
なんだか立派な名前がついていますが、
最近隣内挿法は、小数を四捨五入する方法で、
共一次内挿法は、周りの色の重みを取る方法です。
(なーんだ)
 
共一次内挿法について説明すると、
例えば、逆変換後の座標が(1.3, 1.6)であった場合、
元画像の(1, 1)にある色に、重み[0.3*0.6]を掛け、
(2, 1)に[(1-0.3)*0.6]
(1, 2)に[0.3*(1-0.6)]
(2, 2)に[(1-0.3)*(1-0.6)]
という計算により求めた色を全て足した色が、変換後の色となる方法です。
 
ようは、切捨て・切り上げした値を重みとする方法です。
 
ということで、次回は回転処理についてです。
(つづく)