一般来说,使用 DCT 嵌入消息涉及 4 个步骤:
- 将图像分为 8x8 block
- 使用 DCT 数学运算转换每个 block
- 量化每个 DCT block (有损压缩)
- 嵌入量化系数中的消息位(避免 0、1、-1 和 AC)
没关系,但我不知道如何将数据提取出来。您是否打算执行步骤 1-3 来量化每个 block 以提取每个系数的 LSB?
如果是这种情况,您是否会因为这是一种有损技术而丢失(可能是嵌入数据)数据?
此外,当我尝试量化每个 block 时,我留下了与前一个图像相同的系数(因为 LSB 更改没有效果)??
有人可以帮我解决这个问题吗?
谢谢
最佳答案
消息的嵌入发生在有损压缩之后 - 不可能丢失消息,因为丢失数据的步骤已经执行(除了实际的嵌入之外,它仅丢失图像数据,将其替换为您的图像数据)信息)。理想情况下,您可以直接从系数本身提取消息 - 也就是说,提取过程中不涉及解压缩。
关于java - 使用 DCT 的隐写术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22391901/