首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏MelonTeam专栏

    关于GPUImage

    本文内容参考自以下文章:KM文章一张图教你看懂GPUImage、iOS 图像处理系列 - GPUImage源码解读(一),博文GPUImage文集。文中不再详细标注引用来源。 关于GPUImage GPUImage框架是一个开源iOS类库,基于OpenGL进行图像和视频处理,借助GPU加速实现各种滤镜效果,并支持摄像头拍摄实时渲染。 GPUImage框架 GPUImage功能的实现依赖四个部分:资源管理、Sources、Filters、Outputs。核心架构用下图概括: ? 1.     资源管理 ? GLProgram是GPUImage对OpenGL ES中的program的封装,可用vertexShader和fragmentShader创建GLProgram对象,实现自定义滤镜效果。 录制滤镜视频 下面的例子利用GPUImage录制视频、实现实时的滤镜效果渲染并将视频文件保存到本地。

    2.8K101发布于 2018-01-04
  • 来自专栏猿说编程

    GPUImage – 纯色 GPUImageSolidColorGenerator

    ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 函数 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GPUImage 使用 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GLSL 编程 一.简介 GPUImage 共 125 个滤镜, 分为四类 1、Color GPUImageSolidColorGenerator 属于 GPUImage 颜色处理相关,用来处理图片纯色; /******************************************* *****************************************/ //@Author:猿说编程 //@Blog(个人博客地址): www.codersrc.com //@File:GPUImage

    28820编辑于 2023-03-23
  • 来自专栏落影的专栏

    GPUImage详细解析

    从源码的角度分析、学习GPUImage和OpenGL ES,这是第一篇,介绍GPUImageFilter 和 GPUImageFramebuffer。 扩展 GPUImage的四大输入基础类,都可以作为响应链的起点。这些基础类会把图像作为纹理,传给OpenGL ES处理,然后把纹理传递给响应链的下一个对象。 这里有个GPUImage的简单工程,可以看到GPUImage的源代码。 ? 附 一个热血青年想在业余时间做更多的尝试,做一些能帮助别人也能受惠自己的事情。

    1.9K60发布于 2018-04-27
  • 来自专栏猿说编程

    GPUImage – 色彩直方图 GPUImageHistogramFilter

    ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 函数 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GPUImage 使用 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GLSL 编程 一.简介 GPUImage 共 125 个滤镜, 分为四类 1、Color GPUImageHistogramFilter 属于 GPUImage 颜色处理相关,用来处理图片色彩直方图,shader 源码如下: /******************************** *****************************************/ //@Author:猿说编程 //@Blog(个人博客地址): www.codersrc.com //@File:GPUImage

    73050编辑于 2023-03-21
  • 来自专栏进击的多媒体开发

    OpenGL 之 GPUImage 源码分析

    GPUImage 是 iOS 上一个基于 OpenGL 进行图像处理的开源框架,后来有人借鉴它的想法实现了一个 Android 版本的 GPUImage ,本文也主要对 Android 版本的 GPUImage 概要 在 GPUImage 中既有对图像进行处理的,也有对相机内容进行处理的,这里主要以相机处理为例进行分析。 在 GPUImage 的 TextureRotationUtil 类中有定义了纹理坐标,这些纹理坐标系的原点不是位于左下角进行定义的,而是位于左上角。 所以,这里可以回顾一下 OpenGL 是如何绘制矩形的,并且将纹理贴到矩形上: OpenGL 学习系列---纹理 在 GPUImage 中,GPUImageFilter 类就完成了上述的操作,它是 OpenGL 在前面讲到过,GPUImage 的纹理坐标原点是位于左上角的,所以使用 TEXTURE_NO_ROTATION 的纹理坐标实质上是将图像进行了上下翻转,两次调用TEXTURE_NO_ROTATION纹理坐标时

    1.4K20发布于 2019-07-25
  • 来自专栏落影的专栏

    GPUImage详细解析(十)用GPUImage和指令配合合并视频

    前言 GPUImage详细解析在GPUImage文集,在前文GPUImage详细解析(八)视频合并混音中使用了github上的开源方式实现,这篇使用GPUImage原生的GPUImageMovieComposition self.videoComposition = videoComposition; self.audioMix = audioMix; } 3、创建GPUImageMovieComposition类,设置GPUImage 文章更新GPUImage详细解析(九)图像的输入输出和滤镜通道已经有两个月,这一篇更多是了却当时未能的想法。 GPUImage进阶的各种滤镜使用是GPUImage的核心魅力所在,目前仅是在直播中用到GPUImage的美颜功能。 在研读GPUImage源码的过程中对OpenGL ES有了更深入的学习,也发现了GPUImage的部分问题,比如说在推流过程中添加滤镜导致推流视频闪烁的现象(这个问题来自于一个简书的网友,当时的图如下)

    1.5K100发布于 2018-04-27
  • 来自专栏每日一篇技术文章

    GPUImage图像滤镜分析01

    GPUImage 的部分滤镜效果展示。 ? IMG_1283.PNG ? IMG_1284.PNG ? IMG_1285.PNG ? IMG_1287.PNG ? IMG_1288.PNG ? 看效果,不是我的初衷,接下来,我将GPUImage框架进行分解讲解,可以让移动开发者,能够创造出更多的效果出来,或者是能用它的基础知识,做出更有用的产品出来。

    1.4K10发布于 2018-09-14
  • 来自专栏猿说编程

    GPUImage – 调节图像颜色 GPUImageToneCurveFilter

    ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 函数 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GPUImage 使用 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GLSL 编程 一.简介 GPUImage 共 125 个滤镜, 分为四类 1、Color GPUImageToneCurveFilter 属于 GPUImage 颜色处理相关,用来处理图片颜色 GPUImageToneCurveFilter 根据每个颜色通道的样条曲线调整图像的颜色。 *****************************************/ //@Author:猿说编程 //@Blog(个人博客地址): www.codersrc.com //@File:GPUImage

    69120编辑于 2023-03-23
  • 来自专栏猿说编程

    GPUImage – 色阶 GPUImageLevelsFilter

    ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 函数 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GPUImage 使用 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES GLSL 编程 一.简介 GPUImage 共 125 个滤镜, 分为四类 1、Color GPUImageLevelsFilter 属于 GPUImage 颜色处理相关,用来处理图片色阶,色阶是表示图像亮度强弱的指数标准,图像的色彩丰满度和精细度是由色阶决定的。 *****************************************/ //@Author:猿说编程 //@Blog(个人博客地址): www.codersrc.com //@File:GPUImage

    76630编辑于 2023-03-23
  • 来自专栏HelloCode开发者学习平台

    GPUImage框架_文档翻译

    先来介绍一下,GPUImage吧! GPUImage框架是一个获得BSD许可的iOS库,可让您将GPU加速滤镜和其他效果应用于图像,实时摄像机视频和电影。 在iPhone 4S上,对于这种情况,GPUImage仅比Core Image快4倍,比CPU绑定处理快102倍。 然而,对于更复杂的操作,如更大半径的高斯模糊,Core Image目前超过GPUImage。 在iPhone 4S,GPUImage只有快4倍比核心的形象,这种情况下,和102x速度比CPU绑定的处理。然而,对于更复杂的操作,如高斯模糊半径较大,目前超过GPUImage核心形象。) (GPUImage框架使用自动引用计数(ARC),但要支持的项目,如果添加一个子项目解释如下使用手动引用计数。

    1.7K10编辑于 2023-03-23
  • 来自专栏落影的专栏

    GPUImage详细解析(二)

    解析 GPUImage详细解析(一) 上一篇介绍的是GPUImageFramebuffer和GPUImageFilter。 1、视频图像采集 :AVCaptureSession GPUImage使用AVFoundation框架来获取视频。 AVCaptureSession类从AV输入设备的采集数据到制定的输出。 百度百科的介绍 YUV数据格式-图文详解 GPUImage中的YUV GLProgram *yuvConversionProgram; 将YUV颜色空间转换成RGB颜色空间的GLSL。 texture); glBindTexture(GL_TEXTURE_2D, _texture); SO的详细介绍 GPUImageView GPUImageView是响应链的终点,一般用于显示GPUImage

    1.8K30发布于 2018-04-27
  • 来自专栏天天P图攻城狮

    iOS GPUImage源码解读(一)

    导语 : 前段时间写了篇《一张图教你读懂GPUImage》的文章简单介绍了GPUImage的核心架构。 至于括号里的“一”,主要是觉得GPUImage还有很多值得深入学习和分享的内容,后续的学习和使用过程中有新的心得体会还会继续给大家分享。 前言 GPUImage是iOS上一个基于OpenGL进行图像处理的开源框架,内置大量滤镜,架构灵活,可以在其基础上很轻松地实现各种图像处理功能。 线程管理 OpenGLContext不是多线程安全的,GPUImage创建了专门的contextQueue,所有的滤镜都会扔到统一的线程中处理。 这里就以视频拍摄组件(GPUImageVideoCamera)为例,来讲讲GPUImage是如何把每帧采样数据传入到GPU的。

    7.4K120发布于 2018-02-01
  • 来自专栏HelloCode开发者学习平台

    开启你的GPUImage之旅

    前言 GPUImage是现在做滤镜最流行的开源框架。是Brad Larson在gitHub托管的一个开源项目。 在我的关于GPUImage文档翻译中,也提到了它的底层实际上是基于多个框架。 GPUImage框架是目前比较主流的一款开源的图像处理框架。有iOS版也有安卓版,也推出了Swift版。在多平台选择性上没有顾虑。 GPUImage隐藏了在iOS所用需要使用OpenGL ES的复杂代码,并用极其简单的接口以很快的速度处理图像。GPUImage的性能甚至在很多时候击败了CoreImage。 不再是.xcodeproj文件 四、你的第一个GPUImage 项目 五、效果对比 原始图片 代码黑白效果图:

    79510编辑于 2023-03-23
  • 来自专栏音视频直播技术专家

    最优秀的开源库之GPUImage

    于是我发现了GPUImage库。 GPUImage在github上有16304个星,哇,能有几百个星就已经很了不起了,它居然能有上万的星,可见它人气是非常旺的。 下面我们来看看 GPUImage 都能干些什么吧。 GPUImage GPUImage是一个BSD许可的IOS库,它使用GPU加速对图像,实时视频和电影做美颜,灰度等各种特效。 而GPUImage帮我们解决了这些问题,它对 OpengGL ES做了非常好的封装,我们只要调用简单的几个接口就可以做出各种特效来。 GPUImage总体结构 GPUImage使用OpenGL ES 2着色器进行图像和视频处理速度远远超过基于CPU程序做的。而且它提供了简化的Objective-C接口,隐藏了OpenGL复杂的交互。 效果对比图 依赖库 GPUImage依赖下面的几个库: CoreMedia: AVFoundation常用的功能。 CoreVideo: OpenGL ES 使用的视频基础库。

    1.2K20发布于 2020-04-01
  • 来自专栏猿说编程

    GPUImage – 像素平均色值 GPUImageAverageColor

    目录 一.简介 二.猜你喜欢 一.简介 GPUImage 共 125 个滤镜, 分为四类 1、Color adjustments : 31 filters , 颜色处理相关 2、Image processing GPUImageAverageColor 属于 GPUImage 颜色处理相关,用来处理图片像素平均色值 通过对图像中每个像素的 RGBA 分量进行平均,处理输入图像并确定场景的平均颜色。 *****************************************/ //@Author:猿说编程 //@Blog(个人博客地址): www.codersrc.com //@File:GPUImage

    45420编辑于 2023-03-21
  • 来自专栏天天P图攻城狮

    GPUImage源码解读(四) - 图像锐化

    GPUImage中可以找到Sobel算子和Prewitt算子的具体实现,Sobel和Prewitt都是3x3模板的梯度运算,其模板表示如下: ? GPUImageSobelEdgeDetectionFilter是GPUImage利用Sobel算子实现的一种边缘检测器,其运行效果如下: ? 接下来我们深入源码,看一下这样一个滤镜在GPUImage中具体是怎样实现的。 filter中的其它代码主要是一些属性设置,几乎不需要额外的GL代码调用,GPU调用的部分基本都被GPUImage封裝好了,扩展起来还是非常方便的。 GPUImage中同样可以找到关于拉普拉斯算法的具体实现GPUImageLaplacianFilter、GPUImageSharpenFilter。

    3.7K31发布于 2018-12-14
  • 来自专栏落影的专栏

    GPUImage详细解析(三)- 实时美颜滤镜

    GPUImageView是响应链的终点,一般用于显示GPUImage的图像。 琨君的基于GPUImage的实时美颜滤镜对GPUImage实现美颜滤镜的原理和思路做了详细介绍。 本文以琨君的代码为demo,结合前两篇解析,探究美颜过程中的GPUImage实现。 GPUImage类介绍 1、GPUImageFilterGroup GPUImageFilterGroup是多个filter的集合,terminalFilter为最终的filter,initialFilters 4、GPUImageBeautifyFilter GPUImageBeautifyFilter是基于GPUImage的实时美颜滤镜中的美颜滤镜,包括GPUImageBilateralFilter、GPUImageCannyEdgeDetectionFilter 在绘制流程图的过程中,对GPUImage的响应链有了更清晰的认识。

    2.5K50发布于 2018-04-27
  • 来自专栏落影的专栏

    GPUImage详细解析(五)滤镜视频录制

    回顾 GPUImage的基础在详细解析1~4。 这次的介绍是录制视频,添加滤镜,保存到手机。

    2.3K40发布于 2018-04-27
  • 来自专栏落影的专栏

    GPUImage详细解析(十一)美颜+人脸识别

    GPUImage详细解析(三)- 实时美颜滤镜的基础上,引入了IFlyFaceDetector类,用GPUImageUIElement来绘制人脸识别后的贴图,并用GPUImageAddBlendFilter nonatomic,strong) UIImage * mouthMap; //面部贴图 @property (nonatomic,strong) UIImage * facialTextureMap; GPUImage 小结,在查找bug的过程,因为demo较为复杂,花费了较多时间熟悉代码;通过Xcode的工具,可以较快定位大多数GPUImage 的问题。

    2.6K50发布于 2018-04-27
  • 来自专栏天天P图攻城狮

    iOS图像处理系列 - GPUImage源码解读(二)

    导语 :billzbwang写的《iOS 图像处理系列 - GPUImage源码解读(一)》里详细地介绍了核心代码的具体实现,对GPUImage的使用者有很大的参考价值。 在GPUImage中,有一个不为大多数人所注意却又极其重要的模块GPUImageFramebufferCache。 在《iOS 图像处理系列 - GPUImage源码解读》系列的第二篇中,我就把自己对这一模块粗浅的了解分享给大家。 由此,我们可以看到,GPUImage为我们提供了一套完善的framebuffer的cache机制,从GPUImageContext的sharedFramebufferCache里取一个framebuffer 所以,GPUImage给我们实现了一套完善的framebuffer的cache机制,如果不用它而是自行创建和管理framebuffer去处理视频和大量图片时,稍有不慎就会出现crash的情况。

    3.4K80发布于 2018-02-02
领券