【发布时间】:2018-04-17 14:16:17
【问题描述】:
这个问题是基于之前提出的Understanding image steganography by LSB substitution method
为了使代码高效并减少均方误差 (MSE),建议是:“按原样读取文件并将其转换为带有 de2bi(fread(fopen(filename)), 8) 的位。将这些位以最小需要 k 因子,可能是 1 或 2。当您提取秘密时,您将能够重建原始文件。这是我一直在尝试的,但在某处我做错了,因为我没有得到任何显示。但是,MSE确实降低了。基本上,我对如何将图像转换为二进制、对该数据执行算法并在提取后显示图像感到困惑。
有人可以帮忙吗?
【问题讨论】:
-
您询问如何使用 RGB 或灰度图像来执行此操作。澄清一下,您指的是这里的封面图片吗?
-
恐龙图像的长度为 594138 字节,或乘以 8 位。你的封面图片有 512 * 512 * 3 像素。您的封面中有 6.05 个与像素一样多的秘密 bts,这意味着您必须嵌入 7 个最高有效位才能适应整个消息。换句话说,这是一个太大的文件。如果您将密钥的大小调整为 256x256,它的文件大小会小得多并且更易于管理。
-
@Reti43:两个图像的大小和 RGB 相同。将 RGB 秘密图像(dino 文件)嵌入到任何一个通道的 7 个最高有效位平面或 8 个最高有效位平面中的 RGB 封面图像中对我来说是可以的。一旦我了解您的建议是什么以及如何实施它,我以后可以在此基础上再接再厉。我想我按照您建议的方式将图像转换为二进制,它确实提供了较低的 MSE。但接下来的问题是将这些二进制文件转换为图像以便显示。这我不明白该怎么做。当您更好地了解情况时,您能否再次提供帮助。谢谢
-
@Reti43:根据您的建议,我使用
imread读取图像,然后转换为二进制de2bi。 LSB 应用于此二值图像。但正如您从更新的问题中看到的那样,我无法显示提取的图像。 MSE 已减少,但我无法显示提取的图像。 -
删除问题中的代码会适得其反,因为这对于理解您的问题至关重要,并且无论如何都可以通过修订历史访问。
标签: algorithm matlab image-processing fread steganography