[解決済み] 最適な画像ダウンスケーリングアルゴリズムは何ですか?
質問
ラスター画像をダウンサイジングするために使用できる最良のアルゴリズムを見つけたいのです。ベストとは、最も美しい結果を与えるものを意味します。私はバイキュービックを知っていますが、もっと良いものがあるのでしょうか? 例えば、Adobe Lightroomには、私が使っていた標準的なバイキュービックよりも良い結果を出す独自のアルゴリズムがあるという話を何人かの人から聞いたことがあります。残念ながら、私はこのアルゴリズムを自分のソフトウェアで使いたいので、Adobe の慎重に守られた企業秘密ではだめなんです。
追加されました。
Paint.NET をチェックしてみたところ、驚いたことに、画像をダウンサイジングするときはバイキュービックよりもスーパーサンプリングの方が良いようです。そうなると補間アルゴリズムが全く使えないのはどうなんだろうと思ってしまいます。
それはまた、私自身が発明した、しかし実装されたことのないアルゴリズムを思い出させました。これには名前もあると思いますが (このような些細なことが私一人の考えであるはずがないので)、一般的なものの中から見つけることはできませんでした。スーパーサンプリングが最も近いものでした。
このアイデアは、ターゲット画像の各ピクセルについて、それがソース画像のどこにあるかを計算するものです。おそらく、1 つまたは複数の他のピクセルと重なるでしょう。そして、これらのピクセルの領域と色を計算することが可能になります。そして、ターゲットピクセルの色を得るには、これらの色の平均を計算し、その面積を重みとして加えるだけです。つまり、ターゲット ピクセルが黄色のソース ピクセルの 1/3 と緑のソース ピクセルの 1/4 をカバーする場合、私は (1/3*yellow + 1/4*green)/(1/3+1/4) を得ます。
これは当然ながら計算量が多くなりますが、できるだけ理想に近づけるべきでしょう?
このアルゴリズムに名前はあるのでしょうか?
どのように解決するのですか?
残念ながら、オリジナルの調査へのリンクを見つけることはできませんが、ハリウッドの撮影監督がフィルムからデジタル画像に移行するにつれ、この質問がよく出てくるようになりました。 その結果、巨大な映画を見ているプロたちの間で、次のような意見が一致しました。 ミッチェル (高品質な Catmull-Rom としても知られています) がスケールアップに最適で シンク はスケールダウンに最適です。 しかし、sincは無限大に外れる理論的なフィルタなので、完全に実装することはできないので、実際に「sinc」が何を意味しているのかはわからない。 おそらくsincを切り捨てたものを指しているのでしょう。 Lanczos は、sinc を単に切り捨てたものを改善しようとするいくつかの実用的な変種の一つで、おそらく静止画を縮小するための最良のデフォルトの選択肢です。たとえば、線を維持するために線画を縮小する場合、花の写真を縮小するときには歓迎されないであろうエッジの維持を強調することを好むかもしれません。
さまざまなアルゴリズムの結果の良い例が、次のサイトにあります。 色のケンブリッジ .
の人々は fxguide をまとめて 多くの情報 スケーリングアルゴリズムに関する多くの情報(合成やその他の画像処理に関する他の多くの情報と一緒に)をまとめたもので、一見の価値があります。 また、テスト画像も含まれており、独自のテストを行う際に役立つかもしれません。
現在、ImageMagick には リサンプリングフィルタに関する広範なガイド があります。
画像を縮小することについては、理論的には情報を捨てているだけなので完璧に行うことができますが、拡大することについては、存在しない情報を追加しようとしているため、より多くの論争があるのは皮肉なことです。しかし、ランチョスから始めましょう。
関連
-
[解決済み] 構造的再帰と生成的再帰はどのように違うのですか?
-
[解決済み] どのようにすれば、ほとんどすべてのアルゴリズムを修正して、最良の場合の実行時間を持つようにできるか?
-
[解決済み] 定数時間や対数時間よりも、nやnlog(n)の方が良いのでしょうか?
-
[解決済み] ゲーム「2048」の最適なアルゴリズムとは?
-
[解決済み] div内の画像の下に余分なスペースがある
-
[解決済み] 画像比較 - 高速アルゴリズム
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み] 3点から角度を計算するには?[閉じる]
-
[解決済み] ヒューリスティックとアルゴリズムの違いは何ですか?
-
[解決済み] リンクリストのソートで最も高速なアルゴリズムは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】whileループの時間複雑性とは?
-
[解決済み] クイックソートとヒープソートの比較
-
[解決済み] どのようにすれば、ほとんどすべてのアルゴリズムを修正して、最良の場合の実行時間を持つようにできるか?
-
[解決済み] 定数時間や対数時間よりも、nやnlog(n)の方が良いのでしょうか?
-
[解決済み] 2進数が3で割れているかどうかを知るには?
-
[解決済み] CLRSの相対的漸近成長に関する問題(表)の解き方について教えてください。
-
[解決済み] 複雑さ O(log(n)) は O(sqrt(n)) と同等か?
-
[解決済み] クロスワードを生成するアルゴリズム[クローズド]について
-
[解決済み] リストの並べ換えをすべて生成するアルゴリズム?
-
[解決済み] 3点から角度を計算するには?[閉じる]