我想在matlab中使用DCT进行图像加扰。我使用了灰度图像。我想用随机值随机dc。如何将每个块的DC系数设置为随机
值0-255
并保留所有其他值 - 这些是实验步骤:将灰色图像划分为8x8
块;对每个块执行DCT;将每个块的DC系数设置为随机
值0-255
并保留所有其他值;执行逆DCT并恢复图像;将恢复的图像与原始图像进行比较
由SSIM。
谢谢
答案 0 :(得分:1)
问题是“如何将每个块的DC系数设置为(给定)值......”。所以你提到的程序(DCT,设置DC系数,然后是iDCT)应该可行。您将使用Matlab的 dct2 和 idct2 函数。
然而,根据DCT定义,DC系数是每个块中像素值的总和;将其设置为随机值并进行逆变换将产生一个仅与常数不同的块。这并不奇怪,因为您只是在改变 DC级别。因此,您可以跳过DCT / iDCT并直接向每个块中的所有像素添加或减去随机值。
但是你可以看到每个块看起来都像原始块一样,除了不同的光度;此外,块之间的边界将非常明显,因此加扰方法可以很容易地逆转。