SSブログ

楽譜アーカイブアプリ - その23 Bicubicを拡張する [考え中の問題]

一昨日昨日で画像の補間によく使われるBicubicとLanczosをおさらいした。どちらも基本の思想はFourier変換から要求されるsinc関数による補間になってるけど、遠い点からの影響を無視するそのやりかたが違っている。

Lanczos補間はどれだけ遠い点を考慮するかをパラメータにできるので、そこには自由度がある。今日は、Bicubicを±2点だけではなく、Lanczosと同じようにそれ以上の任意の点を考慮するように拡張してみる。

8.1.5  Bicubicの拡張

Lanczos関数と同じようにBicubicも、±2よりもさらに外の格子点を考慮するように拡張することができる。Bicubic関数は
  • 3次スプラインによるsinc関数の区間近似を行う
  • 最後の格子点でだけ微係数を0にする
というものなので外に広げることは簡単である。
kを1 ≤ kn−1の範囲の整数とする。区間[k,k+1]の間の3次のベキ関数で、端点での値が0になる関数fk(x)は
0110eq0806.png
の形になる。この関数の端点での微係数は
0110eq0807.png
なのでsinc関数の微係数
0110eq0809.png
に一致するようにすればよい。このまま連立方程式として解くと
0110eq0810.png
となる。
また、区間[0,1]はx=0での値が1で微係数が0なので区間の関数を
0110eq0812.png
とするとx=1で値が0で微係数が−1という条件から
0110eq0813.png
となる。

あと、残り区間[n−1,n]では値が0で微係数が0なので式-8.6を
0110eq0815.png
とすればいい。このようなBicubic拡張関数をBn(x)と書くと、k > nなるBk(x)は
0110eq0817.png
である。

これで、近接2n個の点を考慮するBicubic補間の関数ができたことになる。
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

献立01/13献立01/14 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。