2012-03-12 11 views
0

ピラミッドの形式で保存された画像にエンハンス(または画像を変更する操作)を適用する方法は、まず特定のピラミッドレイヤーに適用されます(現在のズームレベル)。ユーザーがズームインまたはズームアウトすると別のレイヤーに再び適用され、ORエンハンスメントは一度にピラミッド全体に適用されます。また、エンハンスの効果を他のピラミッドレイヤーに効率的に伝播できるアルゴリズムがありますか?ピラミッドとして保存された画像の拡張

私はこれを行う最良の方法が何であるか知りたいと思います。

+0

質問が不明です - どの部分を設計/実装するか分かりませんか? –

+0

私はイメージピラミッドを使用するという概念には新しいです。私の疑念は、実装と設計の両方で疑わしい。イメージピラミッドのすべてのレベルが元のイメージの縮小された(再サンプリングされた)フォームであると私が理解しているところから。だから、ユーザーがエンハンスメントを適用し、それがすべてのピラミッドレイヤーに適用されるようにするには、ループしてすべてのレイヤーに操作を1つずつ適用するか、またはそれを適用できるアルゴリズムはありますか1つの大きな画像の形ですべて再サンプリングされるので、1つのレイヤーはそれを伝播します。もしあれば、そのアルゴリズムは何ですか? – akshay202

答えて

1

次の2つの良いオプションがあります。

  1. が最高の解像度でアクションを適用し、(選択したときに、現在のレベルや他のレベル)、必要に応じて、低解像度を再作成します。

  2. スイッチングレベルでスタック全体をそのレベルに適用すると、現在のレベルのみに適用されます。

これら両方のオプションでは、非現在のレベル*はすべてファイルに保存し、そのレベルが選択されている場合にのみメモリにロードできます。 (オプション1の最高解像度を除いてメモリに保存する必要があります)

オプション1はより正確です。低解像度に直接適用すると、動作の精度が低下することがあります。

現在のレベルが頻繁に変更されず、アクションが変更されたときに現在のレベルに順番に適用されるほど速い場合は、オプション2を使用すると計算が最小限に抑えられ、同時使用メモリが使用されます。

オプション1では、最高解像度から現在のレベルを計算するための削減アルゴリズム(サイズ変更)が必要です。

オプション2では、一連のアクション(各アクションに+パラメータ)が必要です。

+0

各レベルが1/2xであるピラミッドは、以前のレベルが最高解像度の1.5倍未満になります。ファイルへの書き込みを考慮する必要はありません。 –

+0

あなたのタイトルの数とそれぞれの最高解像度によって異なります。尋ねられたgeotiffs以来、それはいくつかの巨大な量のメモリになる可能性があります。 –

+0

はい最高解像度は非常に大きくなる可能性がありますが、残りのピラミッド全体は1/4と1/2の間になります。私の前のコメントはあまり明確ではなかったと思う。 –

関連する問題