图像算法---表面模糊算法

PS中有个表面模糊的功能,这个功能可以在保留边缘的情况下对图像平坦区域进行模糊滤波,这个功能可以实现很好的磨皮效果,它的算法如下:

这个算法很简单,设置半径r,得到一个边长为(2r+1)的正方形窗口,那么窗口中心像素的像素值即为x,当然,对于像素的RGB三个分量,是需要分别计算的,因此这个算法的时间消耗比较大。

类似的算法还有双边滤波等,不过这类滤波普遍都比较耗时,虽然双边滤波已经可以在PC上实时,但是,在手机端还存在较大问题。

下面给出一些对比效果图:

原图                                                                                                                       表面模糊(r=20,y=28)

双边滤波(r=20)

可以看出,表面模糊的效果要比双边滤波效果更好一些!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-02 23:26:59

图像算法---表面模糊算法的相关文章

O(1)效率的表面模糊算法优化。

很久没有写文章了,主要是最近一段时间没有以前那么多空暇空间,内存和CPU占用率一致都很高,应前几日群里网友的要求,今天发个表面模糊的小程序来找回以前写博的热血吧. 国内我认为,破解表面模糊的原理的最早作者是我一直很崇拜的一位女士,她不会编程,英文也不怎么好,仅凭计算器和Excel两个工具破解了PS了很多算法,真是个巾帼英雄. 详见地址:http://www.missyuan.com/thread-428384-1-1.htm 网上的有关该算法的matlab实现参考:http://www.cnbl

磨皮,美白,搞笑图片处理

Hello!今天我们来学习一下这个神奇的图片处理的第三方函数库——PIL库 (本blog部分图片及代码来自网络) 这是一个支持图像存储.显示和处理的函数库,它能够处理几乎所有图像格式,可以完成对图像的缩放.裁剪.叠加以及图像添加条纹,文字等信息等的操作. 首先是利用pip下载一个: 它有许多子库,例如:Image.ImageChops.ImageDraw等等,他们各有神通,发挥着自己的作用, 首先我们当然学习的是经典的Image子库: 方法 描述 Image.open(filename) 根据参

SSE图像算法优化系列十:简单的一个肤色检测算法的SSE优化。

在很多场合需要高效率的肤色检测代码,本人常用的一个C++版本的代码如下所示: void IM_GetRoughSkinRegion(unsigned char *Src, unsigned char *Skin, int Width, int Height, int Stride) { for (int Y = 0; Y < Height; Y++) { unsigned char *LinePS = Src + Y * Stride; // 源图的第Y行像素的首地址 unsigned char

SSE图像算法优化系列二十二:优化龚元浩博士的曲率滤波算法,达到约500 MPixels/Sec的单次迭代速度。

  2015年龚博士的曲率滤波算法刚出来的时候,在图像处理界也曾引起不小的轰动,特别是其所说的算法的简洁性,以及算法的效果.执行效率等方面较其他算法均有一定的优势,我在该算法刚出来时也曾经有关注,不过那个时候看到是迭代的算法,而且迭代的次数还蛮多了,就觉得算法应该不会太快,所以就放弃了对其进一步优化.最近,又偶尔一次碰触到该文章和代码,感觉还是有蛮大的优化空间的,所以抽空简单的实现他的算法.   该算法作者已经完全开源,项目地址见:https://github.com/YuanhaoGong/C

图像算法---基于局部均值的锐化算法研究

图像锐化算法是图像处理中经常用到的基础算法,在Photoshop中,使用的是USM锐化,但是这种锐化速度比较慢,今天,介绍一种很简单的锐化算法:基于均值滤波的锐化算法. 本文要介绍的这个算法,来源于论文<Digital image enhancement and noise fitering by using local statistics>. 算法过程如下: 1,计算窗口范围内的均值: 其中公式(1)为均值计算公式 ,公式(2)为方差计算公式,公式(2)暂时没有用到. 2,锐化公式: 2.

图像算法研究---Adaboost算法详解

本篇文章先介绍了提升放法和AdaBoost算法.已经了解的可以直接跳过.后面给出了AdaBoost算法的两个例子,附有详细计算过程. 1.提升方法(来源于统计学习方法) 提升方法是一种常用的统计学习方法,应用十分广泛且有效.在分类问题中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能.提升算法基于这样一种思路:对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好.实际上,就是"三个臭皮匠顶个诸葛亮"的道

图像算法---头发检测算法研究

最近在做头发检测的算法研究,在此做个总结. 发色检测目前主要的方法有:1,基于颜色空间统计的发色检测:2,基于概率模型.高斯模型的发色检测:3,基于神经网络机器学习的发色检测: 这三种方法中,最稳定的是第3种,但是该方法实现起来比较复杂,样本量大:最简单的是第1种,但是不精确: 说实在的,这三种方法,都没办法完美检测发色,也就是没办法避开同色的干扰,不过,今天本人还是要介绍一种,相对来讲,比较实用的方法: 本文的算法使用最简单的颜色空间模型和概率模型,参考文献为:<Hair color mode

图像算法研究---Adaboost算法具体解释

本篇文章先介绍了提升放法和AdaBoost算法.已经了解的可以直接跳过.后面给出了AdaBoost算法的两个样例.附有详细计算过程. 1.提升方法(来源于统计学习方法) 提升方法是一种经常使用的统计学习方法,应用十分广泛且有效.在分类问题中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能. 提升算法基于这样一种思路:对于一个复杂任务来说,将多个专家的推断进行适当的综合所得出的推断.要比当中不论什么一个专家单独的推断好. 实际上.就是"三个臭皮匠顶个诸葛亮&q

图像算法 -- 最全混合图层算法(附源码)

混合图层算法 本文中的混合图层跟PhotoShop中完全一致. 1正常模式:混合色*不透明度+(100%-混合色不透明度) 2溶解模式:溶解模式下混合色的不透明度及填充都是100%的话,我们就看不到基色图层.降低混合色图层的不透明度后,我们就会发现结果色中出现了很多细小的颗粒.这些颗粒会随着混合色的不透明度变化.不透明度越低混合色图层就被溶解的越多.剩下的部分就越少.不透明度越高混合色图层被溶解的部分就越少,剩下的部分就越多,结果色就越接近混合色. 3变暗模式:变暗混合模式下,它会把混合色与基色