GPUImage对视频做处理

GPUImage对视频做处理

参考

在人脸上贴图片的效果, 用GPUImage的思想就是有一层贴纸, 然后根据人脸识别的位置来调整贴纸的位置
如果是静态图片的话, 就相当于添加水印

更新贴图水印位置

GPUImage官方有Demo实现添加水印.
原理主要有这两个东西:

  1. GPUImageUIElement
    作用是把一个视图的layer通过CALayer的renderInContext:方法把layer转化为image,然后作为OpenGL的纹理传给GPUImageAlphaBlendFilter

  2. GPUImageAlphaBlendFilter :
    而GPUImageAlphaBlendFilter则是一个两输入的blend filter, 它的第一个输入是摄像头数据,第二个输入则是刚刚提到的GPUImageUIElement的数据,GPUImageAlphaBlendFilter将这两个输入做alpha blend,可以简单的理解为将第二个输入叠加到第一个的上面,更多关于alpha blend在维基百科上有介绍

通过将摄像头数据添加到 GPUImageFilter, 图层添加到GPUImageUIElement, 最后得到的东西再天海到 GPUImageAlphaBlendFilter, 相当于

对获取到的摄像流进行人脸识别

通过 CIDetector 来进行简单的人脸检测, 首先初始化 -> 从摄像头数据CMSampleBufferRef转CIImage -> 对 CIImage 用 CIDetector 进行人脸检测
在那个帖子的评论里有些提供了另外的解决库

搜到的资料:

  1. 美颜滤镜, 估计效果没那么好
    2.