19

ダウンスケーリングを理解しようとしています。アップスケーリング時に、バイキュービックや最近傍などの補間アルゴリズムを使用して、古い既知のポイント(画像の場合はピクセル)間の「空白を埋める」方法を確認できます。

しかし、ダウンスケーリング?そこでどのように補間手法を使用できるかわかりません。埋める空白はありません!

私はこれにずっと長い間立ち往生してきました、私に正しい方向に少しずつ動かしてください。実際に既知のデータを削除する場合、どのように補間しますか?

編集:ポイントごとに1つのカラーチャネルを持つ1次元画像があると仮定します。平均ピクセル値で6〜3ポイントをスケーリングするダウンスケールアルゴリズムは、次のようになります。1,2,3,4,5,6 =(1 + 2)/ 2、(3 + 4)/ 2、(5 + 6)/ 2私はここで正しい方向に進んでいますか?この補間は、単にデータを破棄するのではなく、ダウンスケーリングに使用されますか?

4

6 に答える 6

18

元のピクセルを幅nを持つものとして概念化すると、ピクセルの中心はいずれかのエッジからn/2になります。

ピクセルの中心にあるこの点が色を定義すると考えることができます。

ダウンサンプリングしている場合は、概念的にこのように考えることができます。物理的なサイズを縮小している場合でも、同じ寸法を維持していると考えてください。ただし、ピクセル数(概念的にはサイズが大きくなっています)を減らしています。その後、数学を行うことができます...

例:画像の高さが1ピクセル、幅が3ピクセルで、水平方向にのみダウンスケールするとします。これを2ピクセル幅に変更するとします。これで、元の画像は3nになり、2ピクセルに変換するため、新しい各ピクセルは元の画像ピクセルの(3/2)を占めます。

中心についてもう一度考えないでください...新しいピクセルの中心は(3/4)nと(9/4)n [つまり(3/4)+(3/2)]にあります。元のピクセルの中心は、(1/2)n、(3/2)n、および(5/2)nにありました。したがって、各中心は、元のピクセルの中心が見つかる場所の間のどこかにあります。元のピクセルの中心と一致するものはありません。(3/4)nの最初のピクセルを見てみましょう。元の最初のピクセルから(1/4)n離れており、元の2番目のピクセルから(3/4)n離れています。

滑らかな画像を維持したい場合は、逆の関係を使用します。新しいピクセルの中心は概念的には、最初のピクセルの色の値の(3/4)+ 2番目のピクセルの色の値の(1/4)を取ります。 2番目(3n / 4離れたところ)よりも最初の元のピクセル中心(n / 4離れたところ)に近くなります。

したがって、データを本当に破棄する必要はありません。隣接するものから適切な比率を計算するだけです(画像全体の物理的なサイズが変化しない概念的な空間で)。これは、厳密なスキップ/破棄ではなく、平均化です。

2D画像では、比率の計算はより複雑ですが、要点は同じです。補間し、最も近い元の「ネイバー」からより多くの値を引き出します。ダウンサンプルがそれほどひどくない場合、結果の画像は元の画像と非常によく似ているはずです。

于 2009-05-18T01:26:26.393 に答える
10

アップスケーリングであろうとダウンスケーリングであろうと、進行中の「補間」は実際にはリサンプリングです。

縮小バージョンのサンプル数がサンプルの全数(ピクセルなど)の偶数の除算器ではない場合、データを破棄するだけで、画像に「ジャギー」として表示されるサンプリングエラーが発生します。代わりに、前述のアルゴリズムの1つを使用して、既存のサンプル間のスペースに新しいサンプルが存在する場所を補間すると、結果ははるかにスムーズになります。

これは、最初に新旧のサイズの最小公倍数にスケールアップし、次に実際に中間結果を生成せずにサンプルを破棄してスケールダウンすることとして概念化できます。

于 2009-05-18T00:51:28.927 に答える
8

このスケッチは、3ピクセル(黒い曲線)で始まり、補間(青い曲線)を使用して2ピクセル(赤い曲線)にダウンサンプリングされた、いくつかのピクセルの断面を示しています。補間は元の3つのピクセルから決定され、最後の2つのピクセルは各最後のピクセルの中心にある補間の値に設定されます。(ここで不明な場合は、縦軸は単一のカラーチャネルの各ピクセルの強度を示しています。)

代替テキストhttp://img391.imageshack.us/img391/3310/downsampling.png

于 2009-05-18T03:13:00.443 に答える
7

ここでは、元の画像が上にあり、次にナイーブな削除アルゴリズムが中央にあり、補間アルゴリズムが下にあります。

大きなスポットライトを考えてみましょう。中央の光が最も明るく、端の光が暗くなります。遠くに照らすと、光線が突然エッジ付近の暗さを失い、しっかりとした光の輪郭になると思いますか?

いいえ、同じことがここでstackoverflowロゴにも起こっています。最初のダウンスケーリングでわかるように、画像はエッジの柔らかさを失い、ひどいように見えます。2番目のダウンスケーリングは、周囲のピクセルを平均化することにより、エッジの滑らかさを維持しています。

試してみる簡単な畳み込みフィルターは、ピクセルとその周囲の他のすべてのピクセルのRGB値を追加し、単純な平均を行うことです。次に、ピクセルをその値に置き換えます。中央のピクセルにその情報がすでに含まれているため、隣接するピクセルを破棄できます。

代替テキスト

于 2009-05-18T03:50:27.397 に答える
3

lanczosなどのウィンドウ化されたsincフィルターを使用すると、実際には、低解像度では表現できない高周波の詳細がフィルターで除外されます。平均化フィルターはこれを行わないため、アーティファクトが発生します。sincフィルターは、より鮮明な画像を生成し、アップスケーリングとダウンスケーリングの両方で機能します。

sincを使用して画像をアップスケールし、次に元のサイズにダウンスケールすると、ほぼ同じ画像が返されますが、ダウンサイジング時にピクセルを平均しただけでは、元の画像よりもわずかにぼやけた画像になります。 。ウィンドウ化されたsincが近似しようとするフーリエ変換を使用してサイズを変更した場合、丸め誤差を除いて、正確な元の画像が返されます。

ただし、sincフィルターを使用した場合の鋭いエッジの周りのわずかなリンギングが気に入らない人もいます。ベクターグラフィックのダウンスケーリングには平均化を、写真のダウンスケーリングにはsincをお勧めします。

于 2009-06-25T14:50:17.580 に答える
3

アップスケーリングでもダウンスケーリングでも、2つのピクセル間のポイントのカラー値を(ある程度の精度で)決定する必要があります。

ピクセルの単一の行を取りましょう:

P     P     P     P     P     P     P     P     P

アップサンプリングし、中間点で使用するピクセル値を知りたいと思います。

P   P   P   P   P   P   P   P   P   P   P   P   P

また、ダウンサンプリングするときは、中間点で使用するピクセル値も知りたいと思います。

P       P       P       P       P       P       P

(もちろん、これを1次元ではなく2次元で実行したいのですが、同じ原則です。)

したがって、関係なく、適切なサンプル値を決定するために補間する必要があります。結果がどれだけ正確であるかに応じて、さまざまな補間手法があります。理想的には、関連するすべての数学を適切にリサンプリングする必要があります...しかし、それでも厳密に補間が行われるだけです!

于 2009-05-18T03:15:32.823 に答える