2013-03-15 81 views
0

我想在MATLAB中使用DCT進行圖像置亂。我使用了灰度圖像。我想隨機直流隨機值。如何將每個塊的DC係數設置爲隨機 值0-255並保留所有其他值這些是實驗的步驟:將灰度圖像分成8x8塊;對每個塊執行DCT;將每個塊的DC係數設置爲隨機 值0-255並離開所有其他;執行逆DCT並恢復圖像;比較恢復的圖像與SSIM原始的 。 謝謝如何隨機直流?

回答

1

問題是「如何將每個塊的DC係數設置爲(給定)值...」。所以你提到的程序(DCT,設置DC係數,然後iDCT)應該工作。您可以使用Matlab的dct2idct2函數。

但是,從DCT定義中,DC係數是每個塊中像素值的總和;將其設置爲一個隨機值,並進行逆變換將產生一個塊,它將與原始塊不同,只有一個常數。這並不奇怪,因爲您只是更改直流電平。因此,您可以跳過DCT/iDCT,並直接爲每個塊中的所有像素添加或減去一個隨機值。

但是您可以看到每個塊看起來都像原始塊,除了不同的亮度;另外,塊之間的邊界將是非常明顯的,所以加擾方法可以很容易地被逆轉。