0

matlabでDCTを使用して画像スクランブリングを作成したいと思います。グレースケール画像を使用しました。ランダムな値でDCをランダムにしたい。各ブロックのDC係数をランダムな値に設定し、0-255他のすべてを残す方法??これらは実験の手順です:グレー画像をブロックに分割し8x8ます;各ブロックでDCTを実行します;各ブロックのDC係数をランダムな値に設定し0-255ます他のすべてを残す;逆DCTを実行して画像を復元する;復元された画像をSSIMによって元の画像と比較する。ありがとうございました

4

1 に答える 1

1

問題は、「各ブロックのDC係数を(与えられた)値に設定する方法...」です。したがって、あなたが言及した手順(DCT、DC係数の設定、次にiDCT)が機能するはずです。Matlabのdct2およびidct2関数を使用します。

ただし、DCTの定義から、DC係数は各ブロックのピクセルの値の合計です。ランダムな値に設定して逆変換を行うと、定数だけが元のブロックとは異なるブロックが生成されます。DCレベルを変更しているだけなので、これは当然のことです。したがって、DCT / iDCTをスキップして、各ブロックのすべてのピクセルにランダムな値を直接加算または減算することができます。

ただし、明るさが異なることを除けば、各ブロックは元のブロックと同じように見えることがわかります。また、ブロック間の境界がはっきりと見えるので、スクランブリング方法を簡単に逆にすることができます。

于 2013-03-15T16:48:16.607 に答える