私(m 、n )m 、nm′、n′
私〜(m′、n′)= ∑M = ⌊ M′⌋ -W+1⌊ メートル′⌋ +w ∑N = ⌊ N′⌋ -W+1⌊ n個′⌋ +w私(m 、n )f (m′− m 、n′− n )
私〜私(x 、y)
f(m 、n )
時間信号のウィンドウ関数と同様に、周波数応答を調べることで、画像補間カーネルの機能の概要を簡単に把握できます。ウィンドウ関数に関する私の答えから:
ウィンドウ関数を説明する2つの主要な要因は次のとおりです。
- メインローブの幅(つまり、最大周波数の半分の電力がどの周波数ビンにあるか)
- サイドローブの減衰(つまり、メインローブからサイドローブまでの距離)。これにより、ウィンドウ内のスペクトル漏れがわかります。
これは、補間カーネルにも当てはまります。基本的には、周波数フィルタリング(サイドローブの減衰)、空間的ローカリゼーション(メインローブの幅)、およびリンギング(ギブス効果)、エイリアシング、ブラーリングなどのその他の効果の削減とのトレードオフです。 sincカーネルとLanczos4カーネルが導入するように画像に「リンギング」、ガウス再サンプリングはリンギングを導入しません。
さまざまな補間関数の効果を確認できるMathematicaの簡単な例を次に示します。
true = ExampleData[{"TestImage", "Lena"}];
resampling = {"Nearest", "Bilinear", "Biquadratic", "Bicubic",
"Gaussian", "Lanczos", "Cosine", "Hamming", "Hann", "Blackman",
"Bartlett", "Connes", "Welch", "Parzen", "Kaiser"};
small = ImageResize[true, Scaled[1/4]];
true
私(x 、y)small
私(m 、n )私(m 、n )私〜(m′、n′)
補間関数が異なると、効果も異なることがわかります。最も近いものと他のいくつかには非常に粗い機能があり、基本的にギザギザの線を見ることができます(グリッド表示ではなく、フルサイズの画像を参照してください)。バイキュービック、バイクアドラティック、およびパーゼンはこれを克服しますが、多くの不鮮明さをもたらします。すべてのカーネルの中で、Lanczosは(視覚的に)最も魅力的で、多くの最高の仕事をしているようです。
この答えを拡張し、時間があるときに違いを示すより直感的な例を提供するようにします。私がウェブで見つけたこの非常に簡単で有益な記事を読むことをお勧めします(PDF警告)。