GPUImageSDK 美颜

news/2024/11/8 1:41:11/

美颜基本概念

GPU:(Graphic Processor Unit图形处理单元)手机或者电脑用于图像处理和渲染的硬件

GPU工作原理:CPU指定显示控制器工作,显示控制器根据CPU的控制到指定的地方去取数据和指令, 目前的数据一般是从显存里取,如果显存里存不下,则从内存里取, 内存也放不下,则从硬盘里取,当然也不是内存放不下,而是为了节省内存的话,可以放在硬盘里,然后通过指令控制显示控制器去取。

OpenGL ES:(Open Graphics Library For Embedded(嵌入的) Systems 开源嵌入式系统图形处理框架),一套图形与硬件接口,用于把处理好的图片显示到屏幕上。

GPUImage:是一个基于OpenGL ES 2.0图像和视频处理的开源iOS框架,提供各种各样的图像处理滤镜,并且支持照相机和摄像机的实时滤镜,内置120多种滤镜效果,并且能够自定义图像滤镜。

滤镜处理的原理:就是把静态图片或者视频的每一帧进行图形变换再显示出来。它的本质就是像素点的坐标和颜色变化

GPUImage处理画面原理

  • GPUImage采用链式方式来处理画面,通过addTarget:方法为链条添加每个环节的对象,处理完一个target,就会把上一个环节处理好的图像数据传递下一个target去处理,称为GPUImage处理链。
    • 比如:墨镜原理,从外界传来光线,会经过墨镜过滤,在传给我们的眼睛,就能感受到大白天也是乌黑一片,哈哈
    • 一般的target可分为两类
      • 中间环节的target, 一般是各种filter, 是GPUImageFilter或者是子类.
      • 最终环节的target, GPUImageView:用于显示到屏幕上, 或者GPUImageMovieWriter:写成视频文件。
  • GPUImage处理主要分为3个环节
    • source(视频、图片源) -> filter(滤镜) -> final target (处理后视频、图片)
    • GPUImaged的Source:都继承GPUImageOutput的子类,作为GPUImage的数据源,就好比外界的光线,作为眼睛的输出源
      • GPUImageVideoCamera:用于实时拍摄视频
      • GPUImageStillCamera:用于实时拍摄照片
      • GPUImagePicture:用于处理已经拍摄好的图片,比如png,jpg图片
      • GPUImageMovie:用于处理已经拍摄好的视频,比如mp4文件
    • GPUImage的filter:GPUimageFilter类或者子类,这个类继承自GPUImageOutput,并且遵守GPUImageInput协议,这样既能流进,又能流出,就好比我们的墨镜,光线通过墨镜的处理,最终进入我们眼睛
    • GPUImage的final target:GPUImageView,GPUImageMovieWriter就好比我们眼睛,最终输入目标。

12304825-84ff54fb516a70ce

GPUImage处理原理.png

美颜原理

  • 磨皮(GPUImageBilateralFilter):本质就是让像素点模糊,可以使用高斯模糊,但是可能导致边缘会不清晰,用双边滤波(Bilateral Filter) ,有针对性的模糊像素点,能保证边缘不被模糊。
  • 美白(GPUImageBrightnessFilter):本质就是提高亮度。

美颜效果

  • 关注效果,忽悠本人

GPUImage原生美颜效果

GPUImage原生.gif

利用美颜滤镜实现效果

美颜滤镜处理.gif

GPUImage实战

GPUImage原生美颜

  • 步骤一:使用Cocoapods导入GPUImage
  • 步骤二:创建视频源GPUImageVideoCamera
  • 步骤三:创建最终目的源:GPUImageView
  • 步骤四:创建滤镜组(GPUImageFilterGroup),需要组合亮度(GPUImageBrightnessFilter)双边滤波(GPUImageBilateralFilter)这两个滤镜达到美颜效果.
  • 步骤五:设置滤镜组链
  • 步骤六:设置GPUImage处理链,从数据源 => 滤镜 => 最终界面效果
  • 步骤七:开始采集视频

注意点:

  • SessionPreset最好使用AVCaptureSessionPresetHigh,会自动识别,如果用太高分辨率,当前设备不支持会直接报错
  • GPUImageVideoCamera必须要强引用,否则会被销毁,不能持续采集视频.
  • 必须调用startCameraCapture,底层才会把采集到的视频源,渲染到GPUImageView中,就能显示了。
  • GPUImageBilateralFilter的distanceNormalizationFactor值越小,磨皮效果越好,distanceNormalizationFactor取值范围: 大于1

利用美颜滤镜实现

  • 步骤一:使用Cocoapods导入GPUImage
  • 步骤二:导入GPUImageBeautifyFilter文件夹
  • 步骤三:创建视频源GPUImageVideoCamera
  • 步骤四:创建最终目的源:GPUImageView
  • 步骤五:创建最终美颜滤镜:GPUImageBeautifyFilter
  • 步骤六:设置GPUImage处理链,从数据源 => 滤镜 => 最终界面效果

注意:

  • 切换美颜效果原理:移除之前所有处理链,重新设置处理链

GPUImage扩展

  • GPUImage所有滤镜介绍
  • 美颜滤镜
  • 美图秀秀滤镜大汇总

源码下载

源码
注意:第一次打开需要 pod install


http://www.ppmy.cn/news/372918.html

相关文章

android camera2美颜,Nano Camera(多功能美颜相机)V2.1 安卓版

Nano Camera(多功能美颜相机)是一款强大全面无死角美颜的相机应用客户端。软件拥有强大的瘦身P图效果,可以一键处理,并且Nano相机还有各种美妆功能。,各种效果都很真实, Nano Camera你值得拥有! 基本简介 Nano Camera是一款非常出色的美颜相…

一键AI着色,黑白老照片画面瞬间鲜活

很多老照片或者电影受时代技术所限制,只能以黑白形式保存;经过编辑后的黑白视频和图片早已丢失彩色原图,这对于保存者来说都十分遗憾。如何能将单一乏味、陈旧斑驳的黑白照片变成鲜活亮丽的彩色照片,从照片中重新获取更多的特征细…

照片美妆--人像变老算法研究

人像变老技术可以把一张小孩子的照片或者年轻人的照片转换为变老以后的样子,目前市面上已有相应的应用,这里本人先放两张效果,然后分析算法: 这个效果是本人算法的效果,现在我们来分析一下人像变老的技术情况。 人像变…

android 美图 app下载,美图手机相机app下载-美图手机相机 安卓版v1.5.0-PC6安卓网

美图手机相机app是一款很有魅力的美颜相机软件。美图手机相机给大家展示了众多的美颜特效功能以及众多特效素材,使用美图手机相机app可对照片快速美颜,美图手机相机操作也很是简单! 软件介绍 美图手机相机app是一款多功能的手机图片编辑神器。…

php美颜相机,手机照片美化软件哪个好|美颜相机官方版-官方版

美图秀秀荣誉出品,众多明星强力推荐! 效果最自然的自拍神器,比化妆品还神奇! 自拍品牌全球第一! 美颜相机是一个自拍App,可以一秒变美,效果超自然,全球3亿人都在用她自拍哦!爱美的你还不快来试试! 一键变美 自拍必备!超简单的傻瓜式操作,让你…

Android -- 小功能 仿美图秀秀(美颜相机)马赛克功能

前言: 之前公司有需求,需要对图片进行编辑,功能参照美图秀秀(或者美颜相机)的功能(带手指触动预览图功能、带放大缩小实施涂鸦功能),上网找了一堆源码,发现没有类似的,只能自己写 …

结合AI实现智能美颜相册

点击观看大咖分享 “拍照技术不够,美颜滤镜来凑!”,美颜滤镜已经成了越来越多用户拍照的必备工具。那么如此常见的美颜技术要怎样才能应用在小程序中呢?如何用小程序云开发结合AI技术制作出颜值与实力并存的智能美颜相册小程序?…

美颜算法

这个讲的不错: https://zhuanlan.zhihu.com/p/37549444 美颜按功能需求来看可分为基础、高级和附加功能三大块。基础概念就是磨皮、处理肤色,目前即便是原生系统自带的相机美颜也能做到基础美颜功能的实时计算,所以启动相机取景预览时就能看到,目前直播用的美颜摄像头已经…