php美颜滤镜,新手入门看这里,BeautifyFace美颜滤镜Demo中文注释

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:12   2295   0

这是Github上很著名的一个基于GPUImage框架做的一个美颜滤镜

我把这个Demo添加了一些中文的注释,方便新手入门,也是为了自己学习.

@class GPUImageCombinationFilter;

@interface GPUImageBeautifyFilter : GPUImageFilterGroup

//Combination Filter是我们自己定义的三输入的滤波器。三个输入分别是原图像A(x, y),双边滤波后的图像B(x, y),边缘图像C(x, y)。其中A,B,C可以看成是图像矩阵,(x,y)可以看成其中某一像素的坐标。

{

GPUImageBilateralFilter *bilateralFilter; //双边模糊

GPUImageCannyEdgeDetectionFilter *cannyEdgeFilter;//Canny边缘检测算法

GPUImageHSBFilter *hsbFilter;//HSB颜色滤镜

GPUImageCombinationFilter *combinationFilter;//滤镜的组合

}

@end/*

1、GPUImageVideoCamera捕获摄像头图像

调用newFrameReadyAtTime: atIndex:通知GPUImageBeautifyFilter;

2、GPUImageBeautifyFilter调用newFrameReadyAtTime: atIndex:

通知GPUImageBilateralFliter输入纹理已经准备好;

3、GPUImageBilateralFliter 绘制图像后在informTargetsAboutNewFrameAtTime(),

调用setInputFramebufferForTarget: atIndex:

把绘制的图像设置为GPUImageCombinationFilter输入纹理,

并通知GPUImageCombinationFilter纹理已经绘制完毕;

4、GPUImageBeautifyFilter调用newFrameReadyAtTime: atIndex:

通知 GPUImageCannyEdgeDetectionFilter输入纹理已经准备好;

5、同3,GPUImageCannyEdgeDetectionFilter 绘制图像后,

把图像设置为GPUImageCombinationFilter输入纹理;

6、GPUImageBeautifyFilter调用newFrameReadyAtTime: atIndex:

通知 GPUImageCombinationFilter输入纹理已经准备好;

7、GPUImageCombinationFilter判断是否有三个纹理,三个纹理都已经准备好后

调用GPUImageThreeInputFilter的绘制函数renderToTextureWithVertices: textureCoordinates:,

图像绘制完后,把图像设置为GPUImageHSBFilter的输入纹理,

通知GPUImageHSBFilter纹理已经绘制完毕;

8、GPUImageHSBFilter调用renderToTextureWithVertices: textureCoordinates:绘制图像,

完成后把图像设置为GPUImageView的输入纹理,并通知GPUImageView输入纹理已经绘制完毕;

9、GPUImageView把输入纹理绘制到自己的帧缓存,然后通过

[self.context presentRenderbuffer:GL_RENDERBUFFER];显示到UIView上。

*/

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP