【ios开发 -- 图片处理 -- 抠图】
在大多图像处理中,我们会应用到高斯模糊处理图像,通常用它来减少图像噪声以及降低细节层次。在此文中介绍了高斯模糊的实现和可选区域的模糊【美图秀秀-背景虚化】
高斯模糊的原理中,它是根据高斯曲线调节像素色值,它是有选择地模糊图像。说得直白一点,就是高斯模糊能够把某一点周围的像素色值按高斯曲线统计起来,采用数学上加权平均的计算方法得到这条曲线的色值,最后能够留下人物的轮廓,即曲线.是指当 Adobe Photoshop 将加权平均应用于像素时生成的钟形曲线。在PS中间,你应该知道所有的颜色不过都是数字,各种模糊不过都是算法。把要模糊的像素色值统计,用数学上加权平均的计算方法(高斯函数)得到色值,对范围、半径等进行模糊,大致就是高斯模糊。
高斯模糊算法公式[使用正态分布]
二维图形表示形式
OpenGL ES 算法实现
1.0 / sqrt(2.0 * M_PI * pow(sigma, 2.0))) * exp(-pow(currentGaussianWeightIndex, 2.0) / (2.0 * pow(sigma, 2.0))
附:GLSL内置指数函数说明图
在GPUImage中我们可以使用GPUImageGaussianBlurFilter来实现高斯模糊。(GPUImageGaussianBlurFilter仅可以全图模糊,而不能部分模糊)
texelSpacingMultiplier是模糊的强度,数值越大,模糊效果越明显
blurRadiusInPixels是像素范围,用于计算平均值。
高斯模糊应用
1+ (UIImage *)applyGaussianBlur:(UIImage *)image 2{ 3GPUImageGaussianBlurFilter *filter = [[GPUImageGaussianBlurFilter alloc] init]; 4// filter.texelSpacingMultiplier = 5.0; 5filter.blurRadiusInPixels =1.0; 6 [filter forceProcessingAtSize:image.size]; 7GPUImagePicture *pic = [[GPUImagePicture alloc] initWithImage:image]; 8 [pic addTarget:filter]; 9 [pic processImage];10 [filter useNextFrameForImageCapture];11return [filter imageFromCurrentFramebuffer];12}
GPUImageGaussianSelectiveBlurFilter可以部分模糊,也就是选区外模糊
excludeCircleRadius用来调整模糊区域
- (UIImage *)applyGaussianSelectiveBlur:(UIImage *)image
{
GPUImageGaussianSelectiveBlurFilter *filter = [[GPUImageGaussianSelectiveBlurFilter alloc] init];// filter.texelSpacingMultiplier = 5.0;filter.excludeCircleRadius = 120 / 320.0;[filter forceProcessingAtSize:image.size];GPUImagePicture *pic = [[GPUImagePicture alloc] initWithImage:image];[pic addTarget:filter];[pic processImage];[filter useNextFrameForImageCapture];return [filter imageFromCurrentFramebuffer];
}
【ios开发 -- 图片处理 -- 抠图】相关推荐
- iOS开发-图片离线鉴黄 基于TensorFlow nsfw oc版
iOS开发-图片离线鉴黄 基于TensorFlow nsfw oc版 前言-基于TensorFlow鉴黄 效果 首先要引入Firebase 鉴黄类的封装 OC版本的鉴黄demo Swift版本的鉴黄 ...
- iOS开发 图片选择器、图片多选功能的实现
版权声明:本文为博主原创文章,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接. Photos.framework是iOS8后苹果推出的一套替代AssetsLibrary.f ...
- iOS开发图片格式选择
图片是如何显示的 在讲解如何选择图片格式之前,我感觉有必要先了解下,图片是如何展示的.如果我们要展示一张图片,一般步骤是这样的: /// Assets.xcassets中的图片,不需要后缀 let i ...
- iOS开发图片控件(ImageView)绑定代码并显示一张图片
我在之前的一篇博客<iOS中如何显示一张图片>中谈到如何使用Image View来显示图片,这个操作是直接在Main.storyboard实现的.也就是说这张图片是写死在界面中了.但是在以 ...
- iOS开发图片纯色填充(两种方式)和缩小图片
UIImage图标换色和变换大小 这里的图片大都指只有两个色的图标,有时候我们的图标需要根据不同的状态显示不同的颜色,有一种简单的处理方式是,将不同状态的颜色图标都切出来,变换状态的时候直接使用相应的 ...
- iOS开发 - 图片实现多层折叠效果
为什么80%的码农都做不了架构师?>>> #效果 #Demo Demo地址:https://github.com/Resory/RYMutipleFoldImageView 如 ...
- iOS开发——图片转PDF的实现方法
2019独角兽企业重金招聘Python工程师标准>>> http://blog.csdn.net/yiyaaixuexi/article/details/8209188 转载于:ht ...
- iOS开发---图片拉伸不变形
话不多说,直接上代码 //原始大小 UIImage *image1 = [UIImageimageNamed:@"mall_icon_y"]; UIButton *btn1 = [ ...
- 【IOS开发高级系列】异步绘制专题
1 图片处理 1.1 编辑图片的几个方法 第一种 先用UIImage对象加载一张图片 然后转化成CGImageRef放到CGContext中去编辑 第二种 用CGImageCreate函数创建CGIm ...
最新文章
- SharePoint Error - An unrecognized HTTP response was received when attempting to crawl this item
- RMI、JNDI、LDAP介绍+log4j漏洞分析
- 【组原】机器字长、指令字长、存储字长、存储单元、存储字 的区分
- 模拟登陆——以github为例
- 主动訪问用户数据的背后是品牌战略
- Python——数组(列表)的基本操作
- SQLite 事务控制
- 批处理-延迟环境变量扩展
- 学习STM32F769DK-OTA例程之APP中断向量表重映射
- 光栅透过率计算 (Matlab)
- PhotoShop CS5制作残旧的印章效果
- 这八件事是春天养生的忌讳 你却一直在做
- 完美解决 OneNote 笔记无法同步的问题
- 决策树Gini系数计算过程详细解答
- JAVA——实现求s=a+aa+aaa+aaaa+aa...a的值
- destoon-开启远程ftp后会员头像上传不显示
- ASPICE_SWE.1_01_02_SQ3RNote
- Excel VBA工程密码破解程序 (绝对可以破解)
- Node.js安装配置
- 【深度学习】梯度下降算法和随机梯度下降算法