7

私は現在ウェーブレットに飛び込んでおり、特定のことについて少し混乱しています。

まず第一に、これは宿題ではありません。レクリエーションコーディング専用です。

理解を深めるために、LeGal 5/3 ウェーブレットのリフティング スキームを C で実装しました。元の画像を正しく再現できます。疑似コードでは、フォワード dwt は次のようになります。

// deinterleave splits the low band from the high band 
// (e.g. 1 0 3 0 6 0 8 1 11 becomes 1 3 6 8 11 | 0 0 0 1)

for each row in image:
     dwt1d(row)
     deinterleave(row)
for each col in image:
     dwt1d(col)
     deinterleave(col)

しかし、私はいくつかのことに苦労しています。

  1. dwt を適用すると、変換された画像が返されますが、値が [0 ~ 255] の範囲外です。そのため、ショートパンツで保管しています。負のものもあれば、非常に大きいものもあります。ここに示すように、見栄えの良い画像を取得するためにそれらを表示するにはどうすればよいですか? imshow(image, [])を使用して Matlab で画像を表示すると、出力はhttp://i.imgur.com/dNaYwEE.jpgのようになります。では、サブバンドを変換する必要はありますか? はいの場合、誰かが私に解決策を教えてくれるか、何をすべきか教えてもらえますか?

  2. 文献では、サブバンドが次のように並べられている場合があります。[ LL HL; HL HH ] そして時々このように: [ LL HL; LHHH]。後者は、ほとんどの場合、論文が JPEG2000 程度であり、私のアルゴリズムが生成するものでもあります。ただし、Matlab では、lwt2 関数を使用すると、以前のレイアウトが返されます。これは、自分の出力と Matlab の出力を比較したときにもわかります。LHとHLが混同されているようです。それはどうしてですか?それは問題ですか?畳み込みの代わりにリフティングを使用して何かをする必要がありますか?

  3. 最初に行を実行してから列を実行するか、またはその逆を実行するかは、実際には重要ですか? 順序を切り替えても、出力に違いは見られません。唯一の違いは、LH が HL になり、HL が LH になることです。ただし、出力が同じであるため、2 番目の質問は解決しません。単なる表記上のものだと思います。それで、それは問題ですか?col-row を行う論文と、row-col を行う論文を見ました。どちらもJPEG2000に関して。

どうもありがとう。誰かが私の問題に光を当てることができれば、私はとても感謝しています.

敬具、 マーカス

4

1 に答える 1