美顏之祛斑算法

目前,市面上有很多的人臉美妝軟件,大多數也都有自動去除皮膚斑點痘痘的功能,網上對於手動祛斑的算法已有了相關實現,可是,自動祛斑的算法卻少之又少,今天,在這裏簡單講一下這方面的開發經驗。圖玩智能科技爲企業提供更穩定更優質的美顏產品,歡迎隨時諮詢www.toivan.com.算法

對於自動祛斑,首先是創建在膚色基礎之上的,這個咱們必須搞清楚,咱們的祛斑是去除的皮膚上的斑點和痘痘。spa

要實現自動祛斑,步驟以下:開發

1,斑點自動檢測;產品

2,斑點去除;it

對於斑點自動檢測算法,如今,來講一下本人認爲可行的兩種方法:class

1.1 Sobel算子斑點檢測基礎

使用Sobel進行斑點檢測,使用Sobel算子來檢測斑點的,確實,Sobel能夠檢測到大部分的斑點。軟件

首先,使用Sobel對皮膚區域的灰度圖進行邊緣檢測,獲得結果圖中你會發現,包含了大部分的斑點圖像;方法

而後,對斑點進行過濾,濾除一些誤檢測的區域,好比圖像邊緣,人臉五官信息等等,這裏可使用連通域判斷來排除這些假斑點;經驗

最後,就能夠獲得咱們想去除的一些斑點了。

注意,祛斑是不可能把全部咱們理解中的斑點去掉的,這一點你能夠看下目前市面上的軟件,究其緣由,是由於皮膚中仍是有不少東西跟斑點特徵是同樣的。

1.2高反差保留算法進行斑點檢測

使用高反差保留算法進行斑點檢測,這個主要來源於PS實現過程,咱們對高反差以後的灰度圖進行個二值化,選取合適的閾值,便可獲得斑點區域。具體實現效果,你們可使用PS實驗一下。

以上就是本人實驗過的兩種斑點檢測算法。

對於斑點去除,這裏也有兩種算法:

2.1,圖像融合

咱們對原圖進行大半徑的高斯模糊,獲得斑點位置的模糊值(只要模糊半徑夠大,這個斑點就越不明顯),而後把這個斑點模糊值做爲融合區域,對原圖進行斑點融合,具體融合算法推薦使用泊松融合。

2.2,圖像填充

有了斑點區域以後,咱們可使用inpaint算法,對斑點區域進行智能填充,這個算法效果較好,可是速度比較慢,這也是有得必有失了呵呵。

以上就是本人對自動祛斑算法的一些總結,兩種算法本人都已實現。

相關文章
相關標籤/搜索