磨皮的本質(zhì)實(shí)際上是模糊。而在圖像處理領(lǐng)域,模糊就是將像素點(diǎn)的取值與周邊的像素點(diǎn)取值相關(guān)聯(lián)。而我們常見的高斯模糊 ,它的像素點(diǎn)取值則是由周邊像素點(diǎn)求加權(quán)平均所得,而權(quán)重系數(shù)則是像素間的距離的高斯函數(shù),大致關(guān)系是距離越小、權(quán)重系數(shù)越大。
如果單單使用高斯模糊來磨皮,得到的效果是不盡人意的。原因在于,高斯模糊只考慮了像素間的距離關(guān)系,沒有考慮到像素值本身之間的差異。舉個(gè)例子來講,頭發(fā)與人臉分界處(顏色差異很大,黑色與人皮膚的顏色),如果采用高斯模糊則這個(gè)邊緣也會(huì)模糊掉,這顯然不是我們希望看到的。
而雙邊濾波(Bilateral Filter) 則考慮到了顏色的差異,它的像素點(diǎn)取值也是周邊像素點(diǎn)的加權(quán)平均,而且權(quán)重也是高斯函數(shù)。不同的是,這個(gè)權(quán)重不僅與像素間距離有關(guān),還與像素值本身的差異有關(guān),具體講是,像素值差異越小,權(quán)重越大,也是這個(gè)特性讓它具有了保持邊緣的特性,因此它是一個(gè)很好的磨皮工具。
雙邊模糊實(shí)際上是考慮的周邊顏色差異的高斯模糊。
`#import "GPUImageGaussianBlurFilter.h"http://高斯模糊`
`#import "GPUImageBilateralFilter.h" //雙邊模糊`