我正在尝试用手机上的实时摄像头来检测LSB隐写术.到目前为止,无论是在印刷材料上还是在个人电脑屏幕上,我都没有很好地检测到LSB隐写术。
我尝试使用OpenCV并将每一帧转换为RBG,然后从每个像素读取比特,但这无法检测到隐写。
我还尝试使用相机的功能,并检查onFrame是否一个像素一个像素地识别起始字符串,这样我就可以读取其余像素中的实际隐藏数据。
这提供了几次积极的结果,但数据的读取是不可能的。
对此有何建议吗?
关于隐藏数据的更多信息: 1.图像上到处都是,而且我知道算法是可行的,因为如果我只是通过应用程序中的位图读取准确的图像,就会检测到并解码隐藏信息,但是当我尝试使用相机时就没有这样的运气了。2.它位于一个栅格中,图像上到处都是8x5像素,这并不是因为它只存在于图像的一个特定区域,而是无法在摄像机视图中检测到。
如果需要的话,我也可以发布一些代码。
谢谢。
发布于 2017-08-17 15:50:03
您仍然没有说明您是如何做到这一点的,但我想您应该对以下内容做了一些说明:
为了所有的实际目的,这是行不通的。LSB像素嵌入隐写技术是一种非常脆弱的技术。您需要一份完美的stego像素图像副本才能进行提取。即使是简单的数字操作也足以摧毁你的秘密。缩放、裁剪和轮作是其中的几个例子。然后你必须担心你拍摄照片的角度和周围的光线。我们甚至没有触及显示在电脑显示器或打印照片上的颜色。
唯一的原因,你得到积极的开始序列是因为你使用一个短的,你一定是幸运的。假设拍摄的stego图像会导致每个像素与其真实值的随机偏差,有时您仍然会得到幸运。想象一下,第一个像素的值是250,拍照后是248。在这两种情况下,LSB仍然是0。
最重要的是,一些序列更有可能出现。在大多数照片中,相邻像素是相关的,因为颜色梯度是平滑的。这意味着,如果照片的左上角是暗的,右上角是明亮的,颜色会慢慢变化。例如,前4个像素的值为10,接下来的几个像素值为11,依此类推。就LSB而言,您有一个模式00001111
,正如我刚才解释的,不管您在那里拍摄的是什么图像,这种情况可能会出现得相当频繁。
https://stackoverflow.com/questions/45721063
复制相似问题