0

我想在 matlab 中使用 DCT 进行图像加扰。我使用了灰度图像。我想用随机值随机直流。如何将每个块的DC系数设置为随机值0-255并保留所有其他值?这些是实验的步骤:将灰度图像分成8x8块;对每个块执行DCT;将每个块的DC系数设置为随机值0-255和保留所有其他;执行逆 DCT 并恢复图像;通过 SSIM 将恢复的图像与原始图像进行比较。谢谢你

4

1 回答 1

1

问题是“如何将每个块的 DC 系数设置为(给定)值......”。所以你提到的程序(DCT,设置DC系数,然后iDCT)应该可以工作。您将使用 Matlab 的dct2idct2函数。

但是,根据 DCT 定义,DC 系数是每个块中像素值的总和;将其设置为随机值并进行逆变换将产生一个与原始块仅相差一个常数的块。这并不奇怪,因为您只是在更改DC 级别。因此,您可以跳过 DCT/iDCT 并直接为每个块中的所有像素添加或减去一个随机值。

但是你可以看到,除了亮度不同之外,每个块看起来都像原来的块。此外,块之间的边界将非常明显,因此加扰方法可以很容易地反转。

于 2013-03-15T16:48:16.607 回答