位运算符问题和图像处理中的隐写术

时间:2013-05-06 22:33:01

标签: matlab image-processing bit-manipulation steganography

Steganography链接显示了隐写术的演示。我的问题是当要替换的位数n = 1时,该方法是不可逆的,即Cover不等于Stego(在理想和完美的情况下,Cover使用的应该与Steganography结果相同)。当要更换的位数为n = 4,5,6时,它才能正常工作!当n = 7时,Stego图像变得嘈杂并且与使用的Cover不同,结果不会变得不明显。因此,显然存在隐写术的操作。有人可以解释为什么会这样,需要做些什么才能使这个过程变得可逆和无损。

1 个答案:

答案 0 :(得分:1)

让我们看看代码的作用。从隐藏图像中提取n个最高有效位(MSB)并将它们隐藏在封面图像中的n个最低有效位(LSB)中。有两点需要注意,这可以回答你的问题。

  • 您在封面图片中更改的位数越多,您的隐秘图像看起来就越扭曲。
  • 您从隐藏图像中使用的信息越多,重建图像看起来就越接近原始图像。以下linkreference)会显示从最高位到最低位的图像信息量。

如果要直观地检查封面和隐秘图像之间的差异,可以使用峰值信噪比(PSNR)公式。据说人眼无法区分PSNR的差异> 30分贝。就个人而言,我不会选择任何低于40的东西,但这取决于你的目标是什么。请注意,这不是最终的,所有类型的测量。算法的质量取决于很多因素。

没有封面和隐秘图像应该是相同的。我们的想法是尽量减少差异,以抵制检测,并且实现这一点有许多妥协,例如您愿意隐藏的信息的大小。

完美检索秘密图像需要隐藏所有像素的所有位,这意味着您只能隐藏封面图像大小的1/8。请注意,这是最糟糕的情况,不考虑加密,压缩或其他技术。这是想法,但我不会提供基于上述的代码片段,因为它非常不灵活。

现在,在某些情况下,您希望检索无损,无论是因为数据是加密的还是敏感的。在其他情况下,近似检索将完成这项工作。例如,如果您只编码图像的4 MSB,那么提取秘密的人仍然可以很好地了解它最初的样子。如果你仍然想要一个无损方法而不是刚建议的方法,你需要使用不同的算法。算法的选择取决于您希望它具有的各种特征,包括但不限于:

  • 健壮性(隐藏信息对图像编辑的抵抗力)
  • 不可察觉性(陌生人知道秘密的存在有多难,但不一定是秘密本身,例如卡方攻击)
  • 封面媒体的类型(例如,特定图像文件类型)
  • 秘密消息的类型(例如,图像,文本)
  • 秘密的大小