在大多图像处理中,我们会应用到高斯模糊处理图像,通常用它来减少图像噪声以及降低细节层次。在此文中介绍了高斯模糊的实现和可选区域的模糊【美图秀秀-背景虚化】

高斯模糊的原理中,它是根据高斯曲线调节像素色值,它是有选择地模糊图像。说得直白一点,就是高斯模糊能够把某一点周围的像素色值按高斯曲线统计起来,采用数学上加权平均的计算方法得到这条曲线的色值,最后能够留下人物的轮廓,即曲线.是指当 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开发 -- 图片处理 -- 抠图】相关推荐

  1. iOS开发-图片离线鉴黄 基于TensorFlow nsfw oc版

    iOS开发-图片离线鉴黄 基于TensorFlow nsfw oc版 前言-基于TensorFlow鉴黄 效果 首先要引入Firebase 鉴黄类的封装 OC版本的鉴黄demo Swift版本的鉴黄 ...

  2. iOS开发 图片选择器、图片多选功能的实现

    版权声明:本文为博主原创文章,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接. Photos.framework是iOS8后苹果推出的一套替代AssetsLibrary.f ...

  3. iOS开发图片格式选择

    图片是如何显示的 在讲解如何选择图片格式之前,我感觉有必要先了解下,图片是如何展示的.如果我们要展示一张图片,一般步骤是这样的: /// Assets.xcassets中的图片,不需要后缀 let i ...

  4. iOS开发图片控件(ImageView)绑定代码并显示一张图片

    我在之前的一篇博客<iOS中如何显示一张图片>中谈到如何使用Image View来显示图片,这个操作是直接在Main.storyboard实现的.也就是说这张图片是写死在界面中了.但是在以 ...

  5. iOS开发图片纯色填充(两种方式)和缩小图片

    UIImage图标换色和变换大小 这里的图片大都指只有两个色的图标,有时候我们的图标需要根据不同的状态显示不同的颜色,有一种简单的处理方式是,将不同状态的颜色图标都切出来,变换状态的时候直接使用相应的 ...

  6. iOS开发 - 图片实现多层折叠效果

    为什么80%的码农都做不了架构师?>>>    #效果 #Demo Demo地址:https://github.com/Resory/RYMutipleFoldImageView 如 ...

  7. iOS开发——图片转PDF的实现方法

    2019独角兽企业重金招聘Python工程师标准>>> http://blog.csdn.net/yiyaaixuexi/article/details/8209188 转载于:ht ...

  8. iOS开发---图片拉伸不变形

    话不多说,直接上代码 //原始大小 UIImage *image1 = [UIImageimageNamed:@"mall_icon_y"]; UIButton *btn1 = [ ...

  9. 【IOS开发高级系列】异步绘制专题

    1 图片处理 1.1 编辑图片的几个方法 第一种 先用UIImage对象加载一张图片 然后转化成CGImageRef放到CGContext中去编辑 第二种 用CGImageCreate函数创建CGIm ...

最新文章

  1. SharePoint Error - An unrecognized HTTP response was received when attempting to crawl this item
  2. RMI、JNDI、LDAP介绍+log4j漏洞分析
  3. 【组原】机器字长、指令字长、存储字长、存储单元、存储字 的区分
  4. 模拟登陆——以github为例
  5. 主动訪问用户数据的背后是品牌战略
  6. Python——数组(列表)的基本操作
  7. SQLite 事务控制
  8. 批处理-延迟环境变量扩展
  9. 学习STM32F769DK-OTA例程之APP中断向量表重映射
  10. 光栅透过率计算 (Matlab)
  11. PhotoShop CS5制作残旧的印章效果
  12. 这八件事是春天养生的忌讳 你却一直在做
  13. 完美解决 OneNote 笔记无法同步的问题
  14. 决策树Gini系数计算过程详细解答
  15. JAVA——实现求s=a+aa+aaa+aaaa+aa...a的值
  16. destoon-开启远程ftp后会员头像上传不显示
  17. ASPICE_SWE.1_01_02_SQ3RNote
  18. Excel VBA工程密码破解程序 (绝对可以破解)
  19. Node.js安装配置
  20. 【深度学习】梯度下降算法和随机梯度下降算法

热门文章

  1. 枚举类 Enum使用
  2. 台灯哪个牌子的比较好保护视力的?国AA照度的护眼台推荐
  3. 《来自Percal25号行星的哥顿人》
  4. 2021年烟花爆竹经营单位主要负责人最新解析及烟花爆竹经营单位主要负责人考试资料
  5. project 2003
  6. 【Java小攻略】时间API全解析
  7. 企业级 Selenium 刷 其他平台 博客访问(学习使用 )
  8. Python中__dict__属性的详解
  9. OpenCV边界外推和边界处理
  10. 计算机应用基础最要考点,北京自考计算机应用基础答题及时存盘