matlab中的图像隐写术

时间:2014-01-07 02:37:02

标签: matlab steganography dct dwt

我是matlab的新手,我得到了使用DWT和DCT组合进行数字图像隐写的最终项目。在这个项目中,我使用2-L DWT然后使用8x8块DCT并使用DCT嵌入图像。

这是我的问题:

  1. 如何在matlab代码中选择LH子带?
  2. 如何在8x8块dct中逐步将图像嵌入封面图像中 解释

2 个答案:

答案 0 :(得分:1)

Dwt是用于降低图像维数的算法,因此用于图像压缩,特征提取过程。 DWT算法将图像分解为4个子带(子图像),即LL,LH,HL,HH。 dwt输出提取输入图像的详细输出。 LL是输入图像的近似图像,它是低频子带,因此它用于进一步的分解过程.LH子带提取原始图像的水平特征HL子带给出垂直特征HH子带给出对角线特征

LH,HL,HH是高频子带

[LL,LH,HL,HH] = DWT2(X,'db5') % x is input image

figure;imshow(LH); % shows LH subband

答案 1 :(得分:0)

2级DWT通过一次DWT,然后取LL系数并对它们应用另一个DWT来工作。所以我假设你想要LH2。以下是image的示例。

您正在寻找2D DWT的命令是dwt2

cA,cH,cV和cD也分别称为LL,LH,HL和HH。 'wname'是您用于转换的小波。最常见的是,在隐写术中使用最简单的一种,即“haar”或“db1”。

你的第二个问题非常开放,现阶段无法回答。我建议您阅读jpeg compression以了解系数是什么以及使用DCT了解隐写术的papers,以了解它们如何用于隐藏消息。

我将简要总结几点。

  • 8x8块将返回8x8(64)个系数,表示组成信号的频率。
  • 左上角是低频,右下角是高频。
  • 因为系数是实数,所以应用量化矩阵将它们转换为整数。
  • 现在,假设您有一个要隐藏的二进制密码消息(0110010100010111 ...),您可以将这些位嵌入到系数中。
  • 最后,采用逆DCT获得8x8隐秘块。