Opencv的VideoCapture函数输出视频时是否会损失?

qq_41571940 2020-04-19 07:33:19
总感觉最近提问的次数有点太多了......这次是视频信息隐写的像素损失问题。我将一个二值图像嵌入了视频文件中,方法是将视频帧用XVID的解码器进行读入,按照8x8分块进行dct变换,这里有一个嵌入强度p,当嵌入的像素为0时该数字为负,否则为正,为了嵌入强度p权且设定为20,然后将dct变换的矩阵[2][2]的位置设为p,接着逆变换为加密图像。当提取隐藏信息的时候则将dct矩阵p[2][2]提取出来,如果为负数则将该像素为0,否则为1。

但是是经过了压缩的原因吗?提取出来的隐藏图像损失略严重,几乎只能看出来个大概,是我选择的解码器压缩太严重了吗?即使已经把嵌入强度设为20这么高了,输出的视频都能看出来有着网格状,视频图像损失相当严重了,提取出来的图像质量仍是不怎么好。

是应该换一个解码器吗?还是说我不应该逐帧嵌入呢?如果能嵌入到关键帧就好了,又能降下来复杂度又能提高安全性。但是opencv并没有留下判断视频关键帧的接口啊。据说ffmpeg对视频的处理比较好,但是ffmpeg又不像opencv支持这么多图像处理的算法,而且用起来也比较难……大佬们有什么比较好的解决方法吗?

隐藏信息嵌入前后对比如下
...全文
156 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧