总感觉最近提问的次数有点太多了......这次是视频信息隐写的像素损失问题。我将一个二值图像嵌入了视频文件中,方法是将视频帧用XVID的解码器进行读入,按照8x8分块进行dct变换,这里有一个嵌入强度p,当嵌入的像素为0时该数字为负,否则为正,为了嵌入强度p权且设定为20,然后将dct变换的矩阵[2][2]的位置设为p,接着逆变换为加密图像。当提取隐藏信息的时候则将dct矩阵p[2][2]提取出来,如果为负数则将该像素为0,否则为1。
但是是经过了压缩的原因吗?提取出来的隐藏图像损失略严重,几乎只能看出来个大概,是我选择的解码器压缩太严重了吗?即使已经把嵌入强度设为20这么高了,输出的视频都能看出来有着网格状,视频图像损失相当严重了,提取出来的图像质量仍是不怎么好。
是应该换一个解码器吗?还是说我不应该逐帧嵌入呢?如果能嵌入到关键帧就好了,又能降下来复杂度又能提高安全性。但是opencv并没有留下判断视频关键帧的接口啊。据说ffmpeg对视频的处理比较好,但是ffmpeg又不像opencv支持这么多图像处理的算法,而且用起来也比较难……大佬们有什么比较好的解决方法吗?
隐藏信息嵌入前后对比如下