java - 使用 DCT 的隐写术

标签 java text jpeg steganography dct

一般来说,使用 DCT 嵌入消息涉及 4 个步骤:

  1. 将图像分为 8x8 block
  2. 使用 DCT 数学运算转换每个 block
  3. 量化每个 DCT block (有损压缩)
  4. 嵌入量化系数中的消息位(避免 0、1、-1 和 AC)

没关系,但我不知道如何将数据提取出来。您是否打算执行步骤 1-3 来量化每个 block 以提取每个系数的 LSB?

如果是这种情况,您是否会因为这是一种有损技术而丢失(可能是嵌入数据)数据?

此外,当我尝试量化每个 block 时,我留下了与前一个图像相同的系数(因为 LSB 更改没有效果)??

有人可以帮我解决这个问题吗?

谢谢

最佳答案

消息的嵌入发生在有损压缩之后 - 不可能丢失消息,因为丢失数据的步骤已经执行(除了实际的嵌入之外,它仅丢失图像数据,将其替换为您的图像数据)信息)。理想情况下,您可以直接从系数本身提取消息 - 也就是说,提取过程中不涉及解压缩。

关于java - 使用 DCT 的隐写术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22391901/

相关文章:

image - 只有 PNG 支持透明度,是这样吗?

java - 有没有一种有效的方法通过java程序裁剪PDF并另存为图像(.JPG)?

Java Attach API : VirtualMachine. list() 返回空列表?

java - 在本地主机中测试时如何模拟不同的位置?

html - 然后是关于 jquery 对话框 ui 和 html() 、text() 函数的问题

javascript - 计算数字空间以近似一行文本

java - 具有列 : Remove alternating background coloring for rows on Linux/Mac 的 SWT 树

java - 使用 Azure 门户中的 Web 应用程序凭据访问 Java 中的 Microsoft Graph Rest 服务

python - 统计文件中所有单词的词频

c# - 从 ffmpeg 标准输出的单个流中获取多个图像