【问题标题】:Image Steganography in matlabmatlab中的图像隐写术
【发布时间】:2014-01-24 15:01:02
【问题描述】:

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

这是我的问题:

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

【问题讨论】:

  • 您需要清除一些事情。您实际上是指 2-L DWT 还是 2D?您要隐藏的图像是什么类型的?我怀疑二进制。您在哪里提供了有关如何嵌入 DCT 系数的更多说明,即使用哪些系数?
  • 2 级 DWT 和 iam 使用 2D DWT。要嵌入的图像类型是 jpg。你能解释一下系数吗?我还是不明白。

标签: matlab steganography dct dwt


【解决方案1】:

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

LH,HL,HH 是高频子带

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

figure;imshow(LH); % shows LH subband

【讨论】:

  • 然后我们选择LH子带后如何在那个子带中嵌入图像?
【解决方案2】:

2 级 DWT 的工作原理是获取一次 DWT,然后获取 LL 系数并将另一个 DWT 应用于它们。所以我假设你想要LH2。这是一个例子image。

您要查找 2D DWT 的命令是 dwt2。

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

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

我将非常简要地总结几点。

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

【讨论】:

  • 还有一个问题,将使用什么 dct ?2D-DCT 还是 1D-DCT?
  • 2D 因为你必须分解二维(行和列)。
猜你喜欢
  • 2014-06-02
  • 2015-06-02
  • 2011-02-17
  • 2014-02-18
  • 2018-07-02
  • 2011-01-01
  • 1970-01-01
  • 2016-05-25
  • 2011-05-10
相关资源
最近更新 更多