首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android CameraX结合LibYUV和GPUImage自定义相机滤镜

image.png 作者:itfitness 链接:https://www.jianshu.com/p/f084082cc0c6 本文目录: image.png 前言 之前使用Camera实现了一个自定义相机滤镜...viewFinder"         android:layout_width="0dp"         android:layout_height="0dp" /> Activity中开启相机预览代码如下...) { } 5.对回调数据进行处理 我们在相机数据回调的方法中对图像进行处理并添加滤镜,当然在此之前我们还需要创建GPUImage对象并设置滤镜类型 private var bitmap:Bitmap...= null //创建GPUImage对象并设置滤镜类型,这里我使用的是素描滤镜 private fun initFilter() {         gpuImage = GPUImage(this)...中添加拍照的逻辑,其实就是将Bitmap转为图片保存到SD卡,这里我们使用了之前引入的Utilcodex工具,当我们点击按钮的时候isTakePhoto 会变为true,然后在相机的回调中就会进行保存图片的处理

1.3K20

OpenGL 之 GPUImage 源码分析

概要 在 GPUImage 中既有对图像进行处理的,也有对相机内容进行处理的,这里主要以相机处理为例进行分析。...在相机的业务开发中,会给相机设置 PreviewCallback 回调方法,只要相机处于预览阶段,这个回调就会被重复调用,返回当前预览帧的内容。...格式,也就是 YCbCr_420_SP 格式,而 OpenGL 使用的纹理是 RGB 格式,所以在每一次的回调方法中需要将 YUV 格式的数据转换成 RGB 格式数据。..., false, true); 6mGLTextureFlipBuffer.put(flipTexture).position(0); 在第一个滤镜绘制时,使用的是参数传递过来的顶点坐标和纹理坐标,中间部分的滤镜使用的是...在 GPUImage 中相机的拍摄是调用 Camera 的 takePicture 方法,在该方法中返回相机采集的原始图像数据,然后再对该数据进行一遍滤镜处理后并保存。

1.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS开发常用之图像浏览及处理

    MWPhotoBrowser - 一个非常不错的照片浏览器,在github的star接近3000个,解决MWPhotoBrowser中的SDWebImage加载大图导致的内存警告问题。...CoreImageShop - CoreImageShop图片滤镜处理 - Mac应用程序,可让您使用SCRecorder创建可在iOS上使用的完整Core Image Filter。...更换头像 - 用户选取从相机或者相册获取图片,并且显示在查看上。 DouBanMeinv.swift - 抓取豆瓣美女图片,瀑布流显示。...Filterpedia.swift - 强大的图片滤镜库演示。 YUGPUImageHighPassSkinSmoothing - 一个基于GPUImage的磨皮滤镜!...YLFaceuDemo - 在直播应用中添加Faceu贴纸效果.Faceu贴纸效果其实就是在人脸上贴一些图片,同时这些图片是跟随着人脸的位置改变的。说明

    4K60

    工业相机在全息成像中的应用

    使用标准RGB范围以外的图像数据(例如多光谱成像),也可以增加数字全息成像的能力,用于显示之前没有被观察到的结构,进而获得观测物的额外数据。...近日,研究人员发表了一篇关于数字全息成像实验方案的文章,这套实验装置中包括一个带有声光可调谐滤波器的干涉仪和The Imaging Source公司的DMK 72BUC02单色工业相机。...在实验中,物光波前和参考光波前通过分束器在空间上对齐,以形成干扰图样,然后由DMK 72BUCO2相机记录图像。相机前面安装一个长通滤波器,用于消除背景光的干扰。...03 数字全息成像的应用 数字全息成像的非接触成像能力,使其特别适合于一些精细应用,如生物医疗应用中细胞和结构(尤其是活体标本)的研究;无损材料测试,如金属或复合材料中的内部缺陷检测;透明介质中的折射率场...;“在微轮廓重建、相结构研究、应力状态监测、粒子轨迹调查、显微镜、光学相干断层扫描等过程中,对各种物体的性质进行定性和精确定量分析。”

    41310

    GPUImage框架_文档翻译

    先来介绍一下,GPUImage吧! GPUImage框架是一个获得BSD许可的iOS库,可让您将GPU加速滤镜和其他效果应用于图像,实时摄像机视频和电影。...在处理视频时,此框架与Core Image相比,在iPhone 4上只需2.5 ms即可从相机上传帧,应用伽玛滤波器和显示,而使用Core Image的相同操作则为106 ms。...(GPUImage框架在处理视频时与Core Image相比是有利的,在iPhone 4上只需2.5毫秒就可以从照相机上传帧,应用gamma滤波器,并使用Core Image对同一操作显示106毫秒。...iOS 5.0 SDK构建 设备必须配备相机才能使用与相机相关的功能(显然) (显然需要必须有一个摄像机来应用与相机相关的功能) 该框架使用自动引用计数(ARC),但如果添加为子项目,则应支持使用ARC...General architecture(普遍结构) GPUImage使用OpenGL ES 2.0着色器以比在CPU绑定例程中更快的速度执行图像和视频操作。

    95610

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

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

    1.3K100

    深度学习在相机标定及其扩展中的应用:综述

    相机标定中的常见标定目标、模型及其扩展应用。...拓展研究范围,在传统参数(如焦距、旋转、平移)的基础上,还涵盖了图像失真校正(径向畸变、滚动快门畸变)、跨视角映射估计、相机与LiDAR联合标定等扩展应用。...数据集与评测平台,构建了一个综合数据集,包括由不同相机在多种环境中捕获的图像和视频,支持现有方法的泛化能力评估。...基于NeRF的标定:尽管NeRF技术在同时优化相机参数和位姿方面取得进展,但其计算需求高且在稀疏视图或低纹理场景中存在挑战。...畸变模型 在基于深度学习的相机标定中,由于广角镜头和CMOS传感器的广泛应用,径向畸变和滚动快门畸变的校正受到越来越多的关注。这里主要回顾这两种畸变的标定与校正方法。

    23710

    【iOS】(一)GPUImage的结构,滤镜链的实现原理

    前言 学了OpenGL,OpenGLES后,去阅读了GPUImage的源码,使用了一段时间,接下来,记录一下我对GPUImage使用和源码阅读的一些分析吧。...滤镜链实现的原理 这里我们先抛开GPUImage,用OpenGL ES去实现一个具有滤镜叠加效果的Demo,这里的Demo我是参考叶孤城的这篇文章,从0打造一个GPUImage(6)-GPUImage的多滤镜处理逻辑...Demo需要实现的效果,是将一张图片,先后通过叠加亮度滤镜,饱和度滤镜最后显示在屏幕上。...使用GPUImage的渲染步骤 通过GPUImagePicture加载图片(这里就是source) source addTarget亮度滤镜 亮度滤镜传递渲染结果给饱和度滤镜 饱和度滤镜传递给GPUImageView...frameShader文件(这里就相当于GPUImageInput),最后一个Program加载的frameShader只需要把rgb信息从纹理中取出,然后展示就行了(这里就相当于GPUImageView

    2.4K40

    Camera开发需要关注哪些点

    我们接下来要分享VideoEditor中的相机处理模块,但是在分享之前,还是有必要将Camera的一些问题给理清楚,磨刀不误砍柴工,只有比较清晰地掌握Camera的一些特点和应用的规律,后续在优化性能和解决问题的时候就不会手忙脚乱了...支持在不打开预览的情况下拍照:在Camera1上,你必须首先打开相机,然后开启预览,之后才能开启拍照。...Camera主要功能 我们使用Camera,主要为了实现什么功能?下面列出了一个相机应用所应该支持的功能,我们接下来的分享中也是会挑一些重点来讲解一下。...实现一个相机应用,需要结合OpenGL实现渲染绘制,OpenGL通过矩阵运算可以将相机帧以特定的比例映射到渲染画布上,使用OpenGL处理的好处还有后期兼容滤镜、特效等画面处理非常方便。...环境,很多相机应用也采用了GLSurfaceView,著名的有gpuimage:https://github.com/cats-oss/android-gpuimage,这个渲染的view看你的选择,如果你的核心逻辑都在底层

    75810

    关于GPUImage

    ·             框架设计灵活,支持上下级滤镜的串联、并联,以实现复杂的滤镜响应链。 ·             有丰富的输入、输出组件及封装好的内置滤镜,可满足大多数场景的应用。...GPUImageFilter及子类接受一个或多个输入,调用关联的GLProgram进行渲染,将结果输出到targets属性保存的对象列表中的每一个对象。...GPUImageView是UIView的子类,用于实时将滤波结果显示在屏幕上,GPUImageMovieWriter将滤镜视频保存在本地,GPUImageTextureOutput输出GPU纹理,GPUImageRawDataOutput...GPUImageMovieWriter将视频输出到磁盘,通过设置、使用AVAssetWriter,在newFrameReadyAtTime:中实现功能。 ?...录制滤镜视频 下面的例子利用GPUImage录制视频、实现实时的滤镜效果渲染并将视频文件保存到本地。

    2.5K91

    iOS 图像处理系列 - 基于GPUImage的滤镜实现及优化

    作者简介:dreamqian(钱梦仁), 天天P图iOS工程师 ---- Part0:图片滤镜简介 GPUImage作为一个开源的iOS GPU处理库,提供了相当便捷的使用GPU来进行图像处理的方法。...4)  对图像的多像素进行调整,比如:虚化、模糊等。这类调整对于当前像素的位置无关,但是与周围像素有关。 下面,针对上述4种常用模式的滤镜,分别介绍一下在GPUImage中该如何实现。...Part2:图像整体格局调整滤镜实现 GPUImage的相关源码中,自带了一个暗角滤镜的实现(GPUImageVignetteFilter)。...Part3:叠加效果滤镜实现 在《图像叠加模式的Shader实现》中,我们介绍了两个像素进行叠加时在OpenGL的计算方法。那么,在OpenGL中,我们应该如何实现两张图片的叠加效果呢?...GPUImage中自带了部分滤镜的实现,例如:GPUImageGaussianBlurFilter(高斯模糊滤镜),GPUImageMediumBlurFilter(均值模糊),GPUImageDilationFilter

    3.5K52

    iOS GPUImage源码解读(一)

    最近在不断学习、使用的过程中,有了更深刻的理解,特来写一篇源码解读的文章详细介绍下核心代码的具体实现。...至于括号里的“一”,主要是觉得GPUImage还有很多值得深入学习和分享的内容,后续的学习和使用过程中有新的心得体会还会继续给大家分享。...接口易用 滤镜和OpenGL资源的创建及使用都做了统一的封装,简单易用,并且内置了一个cache模块实现了framebuffer的复用。...线程管理 OpenGLContext不是多线程安全的,GPUImage创建了专门的contextQueue,所有的滤镜都会扔到统一的线程中处理。...摄像头拍摄过程中每一帧都会有一个数据回调,在GPUImageVideoCamera中对应的处理回调的方法为: - (void)processVideoSampleBuffer:(CMSampleBufferRef

    7.2K120

    图形图像前篇

    4b31522f8b9bd39e0083a429e236fd28.png 图形图像框架汇总 在iOS技术栈中,图形图像包含两大类,一类是以C语言为核心的第三方框架,兼容多系统,多平台;一类是苹果提供给iOS...在 OpenGLES 部分,拿主流的 GPUImage 来做对比,分析一下它们各自的优缺点。只有对比了才知道,Core Image 好在哪里,是否值得使用。...GPUImage 优势: 最低支持 iOS 4.0,iOS 5.0 之后就支持自定义滤镜。 在低端机型上,GPUImage 有更好的表现。...可以根据自己的业务需求,定制更加复杂的管线操作。可定制程度高。 Core Image 优势: 官方框架,使用放心,维护方便。 支持 CPU 渲染,可以在后台继续处理和保存图片。 一些滤镜的性能更强劲。...例如由 Metal Performance Shaders 支持的模糊滤镜等。 支持使用 Metal 渲染图像。而 Metal 在 iOS 平台上有更好的表现。

    72930

    鸿蒙next开发中如何解决相机在全屏预览的时候,画面会有变形和拉伸的问题?

    问题描述:为啥相机在全屏预览的时候,画面会有变形和拉伸?...问题分析:如果你在相机开发的时候,设置的预览画面是全屏的尺寸:meta60 2760/1260=2.19, 预览用的相机尺寸是1920/1080=1.777 那么这个预览画面1.77投在xcomponent2.19...比例上,必然会拉伸变形;所以要全屏预览还要不变形:需要先获取手机的宽高比,用手机的屏幕的height/width去和相机底层支持的预览尺寸的 width/height 去取最贴近的值 也就是cameraOutputCapability.previewProfiles...的分辨率列表中选择2336/1080 = 2.16 这套参数,两个比值只相差 0.03 最合适解决方案封装方法 //查找【相机全屏预览宽高】最接近的手机默认分辨率 findClosestNumber(...if(profileType=='PhotoProfile'){ profileArr = cameraOutputCapability.photoProfiles; //相机支持的分辨率列表

    12210

    短视频源码讲解:短视频技术是如何实现短视频基本功能?

    技术实现:实现需要在进行断点拍摄时直接调用系统 API 或 第三方的相机库,将每一段 mov 等格式的视频片段,作为临时文件保存,存放到沙盒目录中。...技术实现:短视频重拍需在断点续拍功能的基础上实现,依据断点续拍实现方式,我们讲一下回删功能实现的方式。重拍功能需要维护一个视频片段地址列表,进行回删操作时只需要删除视频列表中相对应的视频片段地址。...滤镜:是指拍摄的短视频可以选择不同的场景滤镜,并且进行美化程度调整;水印是指短视频拍摄完成后,可以在短视频上添加不同的水印,保护短视频的版权。 技术实现:这两个功能本质都是对视频图像进行处理。...大部分短视频 SDK 的滤镜和水印使用的都是第三方图像处理库 —— GPUImage 库。使用 GPU 来处理图像,还自带了大量高质量的图像处理滤镜。...当这些基本功能无法满足实际开发中的需求时,GPUImage 还支持自定义滤镜。

    1.6K30

    ON1 Effects 2023 for Mac(图像滤镜调色软件)v17.0激活版

    ON1 Effects还自带图像编辑器和查看器,支持实时调整和预览等。...图片ON1 Effects 2023 for Mac(图像滤镜调色软件)ON1 Effects 2023 for Mac软件功能应用效果的完美工具整理照片的最佳效果。...ON1 Effects 2022中的工具集合非常适合选择性地应用效果和清理照片。...照片效果无损,可堆叠和可编辑的照片滤镜和预设创意资产包括数百种内置照片效果,滤镜,LUT,边框,纹理和预设快速浏览浏览器快速预览效果以及照片上的外观AI快速蒙版工具AI技术检测您的主题并自动创建蒙版遮瑕刷将照片混合在一起以进行曝光或创建渐晕和渐变的滤镜外观可调渐变仅对照片的一部分添加常规调整润饰工具裁剪...,可感知内容的填充,克隆,细化,轮廓和模糊非常适合修饰照片发光面罩根据图像创建亮度蒙版,以自动保护高光或阴影堆栈过滤器就像将滤镜放在相机的末端一样,更加简单皮肤修饰使用针对肤色的滤镜轻松修饰自定义预设轻松保存和整理自己的外观和预设实时预览立即预览任何外观或效果

    54130

    GPUImage详细解析(九)图像的输入输出和滤镜通道

    和 GPUImageRawDataOutput 滤镜通道GPUImageFilterPipeline demo用来展示如何使用GPUImageRawDataOutput。...= nil) { [prevFilter addTarget:self.output]; } } demo思路 GPUImage详细解析(五)滤镜视频录制的流程图为左边部分;...用于GPUImage和UIKit之间的协调, GPUImageFilterPipeline用于把多个滤镜简单串联。...大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。...小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。

    2.2K80

    Web H5视频滤镜的“百搭”解决方案——WebGL着色器

    视频滤镜,顾名思义,是在视频素材上duang特效的一种操作。 随着H5页面越做越炫酷的趋势,单一的视频播放已经不能满足我们的需求,视频滤镜在Web页面上的应用越来越广泛。...使用WebGL提供的api,在像素操作级别,定制只属于你的一款滤镜。 先睹为快的示例 (示例中的视频均来自QQ-AR项目合作商的线上素材) 为了探索合适的方案,我们需要从问题的本质入手分析。...我们对QQ-AR透明Webview中的示例进行帧率考察 image.png 可以看出,在使用gpu并行计算时,滤镜几乎不会引发掉帧。...我对二者都应用了自定义的滤镜,并且开放了一部分参数由用户控制。 从例子中可以看出。...并且注意对于不兼容情况的降级处理(推荐降级成使用普通video标签来渲染,放弃滤镜) WebGL的强大之处绝不仅于此,使用自定义Shader,我们还可以做更多的事情,比如曲面视频,球面视频等等,详细的应用场景

    8.2K50

    开启你的GPUImage之旅

    前言 GPUImage是现在做滤镜最流行的开源框架。是Brad Larson在gitHub托管的一个开源项目。...项目实现了图片滤镜、摄像头实时滤镜,该项目的优点不但在于滤镜很多,而且处理效果基于GPU,比使用CPU性能更高。 在我的关于GPUImage文档翻译中,也提到了它的底层实际上是基于多个框架。...二、比较Core Image 、GPUImage框架 CoreImage框架,可以使用CIFiter内置的滤镜、使用框架内置的人脸检测、固定颜色的透明度剔除、能够移轴的高斯模糊等等。...GPUImage隐藏了在iOS所用需要使用OpenGL ES的复杂代码,并用极其简单的接口以很快的速度处理图像。GPUImage的性能甚至在很多时候击败了CoreImage。...GPUImage最大的优点就是使用简便,它内部封装了许多滤镜,类似亮度滤镜、对比度滤镜、灰度滤镜、双边滤波等等。而且还有许多现成的卡通,黑白版,高斯模糊之类的滤镜效果。

    52410
    领券