整数係数で画像をダウンサンプリングする場合、明らかな方法は、出力画像のピクセルを入力画像の対応するブロックの平均に設定することです。n × n
この方法が最適ではないことをどこかで漠然と読んだことを覚えています(詳細は覚えていません)
より良い方法があるというのは本当ですか?私は信号処理について多くを知りません、この質問はちょうど興味があります。
整数係数で画像をダウンサンプリングする場合、明らかな方法は、出力画像のピクセルを入力画像の対応するブロックの平均に設定することです。n × n
この方法が最適ではないことをどこかで漠然と読んだことを覚えています(詳細は覚えていません)
より良い方法があるというのは本当ですか?私は信号処理について多くを知りません、この質問はちょうど興味があります。
回答:
画像をダウンサンプリングすると、信号を表すことができるサンプルの数が減少します。周波数領域では、信号がダウンサンプリングされると、信号の高周波部分が低周波部分でエイリアスされます。画像処理に適用した場合、望ましい結果は低周波部分のみを保存することです。これを行うには、エイリアシングが発生しないように、元の画像を前処理(エイリアスフィルター処理)して高周波部分を除去する必要があります。
(最もシャープなカットオフを持つ)高周波部分を除去するための最適なデジタルフィルターはsinc関数です。その理由は、Sinc関数の周波数領域表現は、低周波領域全体でほぼ一定の1であり、高周波領域全体でほぼ一定の0であるためです。
sincフィルターのインパルス応答は無限です。ランチョスフィルターは修正されたsincフィルターで、sinc係数を減衰し、値がわずかに低下するとそれらを切り捨てます。
ただし、周波数領域で最適であることは、人間の目で最適であることを意味するものではありません。線形変換に従わないが、線形変換よりも良い結果を生成するアップサンプリングとダウンサンプリングの方法があります。
に関するステートメントに関しては、画像サンプリング中に、高解像度信号と低解像度信号の間の座標対応の選択は任意ではなく、整列させるのに十分であることに留意することが重要ですそれらを実数または離散数の線上の同じ原点(0)に配置します。
座標対応の最小要件は
面積平均は得られる「最も正しい」にかなり近いことは確かですが、問題はシャープな幅Nの線をN倍に縮小するときの一貫性のない動作です。線の位置がモジュロで整列している場合N、シャープな1ピクセルのラインが得られますが、おおよそN / 2 mod Nの場合、非常にぼやけたライン(半分の強度で2ピクセルの幅)が得られます。これは非常に悪く見える可能性があり、非線形ガンマでは、強度の違いさえ生じます。(理想的には、すべてのリサンプリングは、線形の強度スケールに合わせてガンマを補正して行わなければなりませんが、実際には、実際には高価なのでほとんど誰もそれを行いません。)
これを改善したい場合、最初にぼかしを減らすことができない場合があるという事実を受け入れる必要があるため、均一な出力を得る唯一の方法はぼかしを増やすことです。理想的な方法は、ソース画像との畳み込み関数として、ステップ関数ではなく、半径がN / 2より大きいガウスカーネルを使用することです。ただし、N行N列の平均化の実装を既に持っている場合、近似に取り組む安価な方法は、結果のダウンサンプリングされたものに(1 / 4,1 / 2,1 / 4)ぼかしたたみ込みを適用することです画像。