很多时候为了隐藏视频中的敏感信息如人脸、身份证号、车牌号等,我们会采用马赛克算法对视频帧中的一部分内容进行处理。这里介绍一下如何采用FFmpeg实现马赛克效果。
马赛克效果算法的原理如下:
1.分块处理:首先将图像划分为多个小块或区域
2.像素替换:对于每个小块,算法会将其像素值替换为同一小块内的平均像素值或随机像素值,使得图像内容在该区域内变得模糊不可识别;
这里通过使用FFmpeg代码而非命令行+滤镜来实现对应的马赛克效果,在不同的马赛克尺寸下的显示效果如下图所示:
由于马赛克块的存在,整个画面可能无法完整分割,这时候我们需要对各个边边角角的画面内容进行单独处理. 对应的代码实例如下所示:
#include <stdio.h>
#include <assert.h>
extern "C