有关人像美容之祛痘祛斑算法的一部分品尝。

   
 祛痘祛斑算法从来在关切,一向在期待看有么有大神分享有关那地方的材料。在百度上用关键词祛痘祛斑搜到的都是于原理毫无干系的不痛不痒的东西,看样子如故得靠自个儿奋斗。

   
 总的来说,对于祛痘祛斑,我们概念上或然有必然的问询的,这几个根据本人的剖析应该是属于图像修复方面的内容的,于是咨询了有些特地搞学术商量,特别是图像修复相关趋势的比较专业的人选,他们也给本人提供了有些测试的代码,其中最为不难又有一定作用代码如下(由网友西西提供):

function inpainting()
    f=imread('12.png');
    f=rgb2gray(f);
    f=double(f);
    [m,n]=size(f);
    lamda=0.1;
    phi=double(1-(f==255));%
    u=f;
    Iter =400;
    for k=1:Iter
        C1 = circshift(u,[0 -1]); C1(:,n) = C1(:,n-1);
        C2 = circshift(u,[0 1]);  C2(:,1) = C2(:,2);
        C3 = circshift(u,[-1 0]); C3(m,:) = C3(m-1,:);
        C4 = circshift(u,[1 0]);  C4(1,:) = C4(2,:);
        lap_u=C1+C2+C3+C4;
        u=(phi.*f+lamda*lap_u)./(phi+4*lamda);
end
figure; imagesc(u); colormap(gray); axis off; axis equal;

  这些代码的法则是参照:图片 1 一文的。具体的自家也未曾看,应该是基于电视模型的最简易的一种达成。

  上述代码很简短,其中的lamda控制了歪曲的档次,用那么些代码做了下测试,对于灰度图效果如下:

 图片 2 图片 3 图片 4

          原图                    
              Mask                        
修复后的图

  由上图可知,那种概括的代码具有自然的修补效应,可是修复部分可比模糊,其它一个难点就是以此代码的作用很低,尽管改成C语言达成病不是特地困难,不过就是是C速度也有标题,不过针对手动祛斑时的性状,编程时时不要求整图处理,比如取要祛痘祛斑2倍面积的地方开展处理也是足以的。

     
在一个群里也问起这一个题材,有一部分网友提议opencv 的 inpaint
算法可可以吗,于是本人也是试着用opencv的函数试验了下,实验的结果如下:
  

                   图片 5 

                                                 
  原图   

                   图片 6 

                                                                       
     Mask

               图片 7

                        修复的结果图

  如若起始的看,如同修复的结果也还是可以够的。这一个代码在OpenCV的inpaint.cpp,其中一种格局来自杂文《An
Image Inpainting Technique Based on the 法斯特 Marching Method》,
我开支了2天左右的时日将其转移为了纯C++代码,脱离了opencv环境,可是结果表达却有点令人不尽人意,首要的缘由是那一个方法其实也和电视机那些看似,修复的地点会有比较明显的混淆结果(OpenCV里的算法也设有类似卷积的经过,由此模糊时不可幸免的)。而观望美图等软件的修补,对于被修复部分的纹理保留的很好。

     
可是,也不是说那个算法也毫不用处,祛斑祛痘一般都是陪伴着磨皮美白一起利用的,若是对磨皮后局地照旧没有被清除的星点,上述祛斑的法子就能和科普的图较为圆满的相濡以沫在一块的,因为周边的皮肤也是会相比较细腻的,例如下图:

   图片 8   
  图片 9

                  
 原图                                   
磨皮后再手动祛斑的机能

     
其促成在比较高雅依然斑点的自行定位,祛斑算法很多厂家已经有了成熟的算法,只是我们这几个小强见识比较短而已。 

     
至此,我的人像美容算法方法的重大的几个功效为主都已研商形成了(即便都不圆满),其中瘦脸瘦身和眼睛缩放在本人的Imageshop软件的吹嘘菜单里有实例,像皮肤红润那一个只是一些色相的片段调整,没啥难度,磨皮、美白、祛斑这一个自我集中在下边的文件包,有趣味的对象可以看下。

   
 http://files.cnblogs.com/Imageshop/FaceBeautification.rar

 图片 10

****************************作者:
laviewpbt   时间: 2014.7.27    联系QQ:  33184777
转发请保留本行音信**********************