2

次の2つの8タップフィルターがあります。

h0 ['-0.010597', '0.032883', '0.030841', '-0.187035', '-0.027984', '0.630881', '0.714847', '0.230378']
h1 ['-0.230378', '0.714847', '-0.630881', '-0.027984', '0.187035', '0.030841', '-0.032883', '-0.010597']

ここにそれらはグラフ上にあります:

グラフ

近似値(画像の下部サブバンド)を取得するために使用しています。これはa(m,n)次の図にあります。

ダイアグラム

係数と図は、デジタル画像処理、第3版から入手したので、正しいと思います。星印は、1次元の畳み込み(行または列のいずれか)を示します。下矢印は、1次元(行または列のいずれか)でのダウンサンプリングを示します。

私の問題は、のフィルター係数h0h1合計が1より大きいことです(正確には約1.4またはsqrt(2))。当然、フィルターで画像を畳み込むと、画像が明るくなります。確かに、これが私が得たものです(右側に期待される結果):

実際 期待される

誰かがここで問題が何であるかを提案できますか? 畳み込みフィルター係数の合計が1より大きい場合、なぜそれが機能する必要がありますか?

私はソースコードを持っていますが、かなり長いので、ここに投稿しないようにしたいと思っています。どうしても必要な場合は、後であげます。

編集

私がしていることは:

  1. サブバンドに分解する
  2. サブバンドの1つをフィルタリングします
  3. サブバンドを元の画像に再構成します

重要なのは、表示可能なサブバンド分解画像だけではないことに注意してください。サブバンドから元の画像を完全に再構築できる必要もあります。したがって、分解フィルターを補正して画像を明るくするためにフィルター処理された画像をスケーリングする場合、これは私がしなければならないことです:

  1. サブバンドに分解する
  2. 近似サブバンドに強度スケーリングを適用する
  3. サブバンドの1つをフィルタリングします
  4. 近似サブバンドに逆強度スケーリングを適用する
  5. サブバンドを元の画像に再構成します

ステップ2はスケーリングを実行します。これは@Benjaminが提案していることです。問題は、ステップ4が必要になるか、元の画像が適切に再構成されないことです。この長い方法機能します。ただし、教科書には、近似サブバンドではスケーリングが実行されないと明示的に記載されています。もちろん、教科書が間違っている可能性もあります。しかし、もっと可能性があるのは、これがすべてどのように機能するかについて何かを誤解していることです-これが私がこの質問をしている理由です。

編集(2010/7/8)

私はその本の著者に確認のために手紙を書いた。彼は、本の中で言われていることにもかかわらず、あなたはスケーリングを実行しなければならないと言いました。

4

1 に答える 1

1

カーネルの合計がわかっている場合は、畳み込み後の明るさを正しい係数で割って補正してみませんか?

(たとえば、カーネルで3x3の平均を取ることができますが、結果の値を...で除算すること[1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9]もできます)[2, 2, 2, 2, 2, 2, 2, 2, 2]18

編集:私のコメントで述べたように、h1の合計は0になります。h0とh1は互いに逆/逆になっているように見えるため、h0係数の一部の符号が間違っている可能性があります。

EDIT2:コメントを読んでください。私はこの投稿が質問に答えていないことを知っています、私はコメントのためにそれをここに残します。

于 2011-03-14T14:52:44.200 に答える