87

ラスター画像を縮小するのに最適なアルゴリズムを知りたいです。最高とは、最も見栄えの良い結果をもたらすものを意味します。バイキュービックは知っていますが、もっと良いものはありますか? たとえば、Adobe Lightroom には、私が使用していた標準のバイキュービックよりも優れた結果を生成する独自のアルゴリズムがいくつかあると聞いたことがあります。残念ながら、私は自分のソフトウェアでこのアルゴリズムを自分で使用したいので、Adobe の慎重に保護された企業秘密は役に立ちません。

追加した:

Paint.NET を調べてみたところ、驚いたことに、画像を縮小する場合、バイキュービックよりもスーパー サンプリングの方が優れているようです。それは、補間アルゴリズムがまったく進むべき道なのかどうか疑問に思います。

また、私が自分で「発明」したアルゴリズムを思い出しましたが、実装することはありませんでした。名前もあると思いますが(この些細なことは私だけの考えではありません)、人気のあるものの中にそれを見つけることができませんでした. スーパー サンプリングが最も近いものでした。

アイデアはこれです-ターゲット画像のすべてのピクセルについて、ソース画像のどこにあるかを計算します。おそらく、1 つまたは複数の他のピクセルをオーバーレイします。その後、これらのピクセルの面積と色を計算することができます。次に、ターゲットピクセルの色を取得するには、これらの色の平均を計算し、それらの領域を「重み」として追加します。したがって、ターゲット ピクセルが黄色のソース ピクセルの 1/3 と緑のソース ピクセルの 1/4 をカバーする場合、(1/3*黄色 + 1/4*緑)/(1/3+ 1/4)。

これは当然計算集約的ですが、可能な限り理想に近づける必要がありますね。

このアルゴリズムに名前はありますか?

4

7 に答える 7

82

残念ながら、元の調査へのリンクを見つけることはできませんが、ハリウッドの撮影監督がフィルムからデジタル画像に移行するにつれて、この質問が頻繁に出てきたので、誰か (おそらく SMPTE、おそらく ASC) がプロの撮影監督を集めて映像を見せました。さまざまなアルゴリズムを使用して再スケーリングされていました。その結果、大規模な動画を見るこれらのプロにとって、コンセンサスは、Mitchell (高品質の Catmull-Rom としても知られています) がスケールアップに最適であり、sincがスケールダウンに最適であるというものでした。しかし、sinc は理論上のフィルターであり、無限遠になるため、完全に実装することはできないため、「sinc」が実際に何を意味するのかはわかりません。おそらく、sinc の切り詰められたバージョンを参照しています。ランチョスは、sinc のいくつかの実用的な変形の 1 つであり、切り捨てだけで改善しようとするものであり、おそらく静止画像を縮小するための最良のデフォルトの選択肢です。しかし、いつものように、それは画像とあなたが望むものに依存します: 線を維持するために線画を縮小することは、例えば、花の写真を縮小するときに歓迎されないエッジを保存することを強調したい場合です.

Color には、Cambridge でのさまざまなアルゴリズムの結果の良い例があります。

fxguideの人々は、スケーリング アルゴリズムに関する多くの情報を (合成やその他の画像処理に関する他の多くの情報とともに) まとめており、一見の価値があります。また、独自のテストを行う際に役立つ可能性のあるテスト イメージも含まれています。

ImageMagick には、本当にやりたい場合のリサンプリング フィルターに関する詳細なガイドがあります。

皮肉なことに、画像の縮小については、情報を追加しようとしている場合の縮小についてよりも、情報を破棄しているだけなので、理論的には完全に実行できるものです。存在しません。しかし、ランチョスから始めましょう。

于 2011-05-30T02:49:09.513 に答える
22

バイキュービックよりも低速ですが、より高品質の画像を生成するランチョス サンプリングがあります。

于 2008-12-21T21:48:34.093 に答える
16

(バイ) リニアおよび (バイ) キュービック リサンプリングは見苦しいだけでなく、1/2 より小さい係数でダウンスケーリングするとひどく不正確になります。それらは、1/2 の係数でダウンサンプリングしてから最近傍ダウンサンプリングを使用した場合に得られるものと同様に、非常に悪いエイリアシングをもたらします。

個人的には、ほとんどのダウンサンプリング タスクで (面積) 平均サンプルをお勧めします。それは非常にシンプルで高速で、ほぼ最適です。ガウス リサンプリング (係数の逆数に比例する半径を選択、たとえば 1/5 でダウンサンプリングする場合は半径 5) は、計算上のオーバーヘッドが少し増えるだけでより良い結果が得られる可能性があり、数学的にはより適切です。

ガウス リサンプリングを使用する考えられる理由の 1 つは、他のほとんどのアルゴリズムとは異なり、リサンプリング係数に適切な半径を選択する限り、アップサンプリングとダウンサンプリングの両方で正しく機能する (アーティファクト/エイリアシングを導入しない) ことです。それ以外の場合、両方の方向をサポートするには、2 つの別個のアルゴリズムが必要です。ダウンサンプリングの場合は面積平均 (アップサンプリングの場合は最近傍に低下します)、アップサンプリングの場合は (バイ) キュービックのようなもの (ダウンサンプリングの場合は最近傍に低下します)。ガウス リサンプリングのこの優れた特性を数学的に確認する 1 つの方法は、半径が非常に大きいガウスは面積平均に近似し、半径が非常に小さいガウスは (双) 線形補間に近似するということです。

于 2010-10-24T04:23:27.867 に答える
7

少し前に Slashdot でSeam Carvingに関する記事を見ましたが、調べる価値があるかもしれません。

Seam carving は、Shai Avidan と Ariel Shamir によって開発された画像サイズ変更アルゴリズムです。このアルゴリズムは、スケーリングやトリミングではなく、重要度の低いピクセルを画像からインテリジェントに削除 (または追加) することによって、画像の寸法を変更します。

于 2008-12-21T22:20:47.617 に答える
4

あなたが説明するアルゴリズムは線形補間と呼ばれ、最速のアルゴリズムの 1 つですが、画像には最適ではありません。

于 2009-09-18T17:55:15.603 に答える
3

このアルゴリズムに名前はありますか?

文献では「ボックス」または「ウィンドウ」リサンプリングと呼ばれることがあります。あなたが考えるほど、実際には計算コストが低くなります。

また、1/2 を超えてダウンサンプリングされた場合のエイリアシングを回避するためにバイ 3 次補間で後で使用される中間ビットマップを作成するためにも使用できます。

于 2011-06-08T15:40:40.713 に答える