實現(xiàn)人臉手動祛痘效果---OpenCV-Python開發(fā)指南(60)

人臉祛痘原理

其實,在前面的人臉磨皮以及美白的時候盔性,我們就已經(jīng)完成了人臉的祛痘馅闽,只要高度磨皮(雙邊濾波)就能達到祛痘的效果。

但是一般來說毅往,現(xiàn)在的美圖App都會給用戶提供手動祛痘的功能,畢竟自動美白祛痘的效果再怎么好,都不可能完美的復(fù)原所有的人臉,那么額外的針對個人的修復(fù)就顯得格外重要甸怕。

其實人臉祛痘說白了,就是圖像修復(fù)腮恩。而OpenCV中提供的修補函數(shù)為cv2.inpaint()蕾各。這里,我們先來看看改函數(shù)的定義:

def inpaint(src, inpaintMask, inpaintRadius, flags, dst=None):

src:輸入圖像

inpaintMask:修復(fù)掩膜

inpaintRadius:需要修補的每個點的圓形領(lǐng)域為修復(fù)算法參考的半徑

flags:修復(fù)方法庆揪,兩種取值。取值為INPAINT_NS基于Navier-Stokes的方法妨托;INPAINT_TELEA基于Alexandru Telea缸榛。

dst:返回修復(fù)后的圖像

該方法的原理是利用待修補區(qū)域的邊緣信息,同時采用一種由粗到精的方法來估計等照度線的方法兰伤,并采用傳播機制將信息傳播到待修補的區(qū)域内颗,以便達到較好的修補效果。

翻譯成人話就是:利用邊緣的像素值敦腔,修補指定區(qū)域的像素均澳。

實現(xiàn)手動人臉祛痘

既然,我們已經(jīng)了解了手動祛痘的方法函數(shù)符衔。下面找前,我們來實現(xiàn)手動的祛痘效果,具體代碼如下所示:

global img, point
global inpaintMask
#手動祛痘
def manual_acne(event, x, y, flags, param):
    global img, point
    img2 = img.copy()
    height, width, n = img.shape
    inpaintMask = np.zeros((height, width), dtype=np.uint8)
    if event == cv2.EVENT_LBUTTONDOWN:
        point = (x, y)
        cv2.circle(img2, point, 15, (0, 255, 0), -1)
        cv2.circle(inpaintMask, point, 15, 255, -1)
        cv2.imshow("image", img2)
    elif event == cv2.EVENT_LBUTTONUP:
        cv2.circle(img2, point, 15, (0, 255, 0), -1)
        cv2.circle(inpaintMask, point, 15, 255, -1)
        cv2.imshow("inpaintMask", inpaintMask)
        cv2.imshow("image", img2)
        cv2.imshow("image0", img)
        result = cv2.inpaint(img, inpaintMask, 100, cv2.INPAINT_TELEA)
        cv2.imshow("result", result)


if __name__ == "__main__":
    global img
    img = cv2.imread("60.jpg")
    cv2.namedWindow("image")
    cv2.setMouseCallback("image", manual_acne)
    cv2.imshow("image", img)
    cv2.waitKey()
    cv2.destroyAllWindows()

運行之后判族,效果如下:


1.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末躺盛,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子形帮,更是在濱河造成了極大的恐慌槽惫,老刑警劉巖周叮,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異界斜,居然都是意外死亡仿耽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進店門各薇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來项贺,“玉大人,你說我怎么就攤上這事得糜【纯福” “怎么了?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵朝抖,是天一觀的道長啥箭。 經(jīng)常有香客問我,道長治宣,這世上最難降的妖魔是什么急侥? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮侮邀,結(jié)果婚禮上坏怪,老公的妹妹穿的比我還像新娘。我一直安慰自己绊茧,他們只是感情好铝宵,可當(dāng)我...
    茶點故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著华畏,像睡著了一般鹏秋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上亡笑,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天侣夷,我揣著相機與錄音,去河邊找鬼仑乌。 笑死百拓,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的晰甚。 我是一名探鬼主播衙传,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼厕九!你這毒婦竟也來了粪牲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤止剖,失蹤者是張志新(化名)和其女友劉穎腺阳,沒想到半個月后落君,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡亭引,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年绎速,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片焙蚓。...
    茶點故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡纹冤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出购公,到底是詐尸還是另有隱情萌京,我是刑警寧澤,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布宏浩,位于F島的核電站知残,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏比庄。R本人自食惡果不足惜求妹,卻給世界環(huán)境...
    茶點故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望佳窑。 院中可真熱鬧制恍,春花似錦、人聲如沸神凑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽溉委。三九已至鹃唯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間薛躬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工呆细, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留型宝,地道東北人。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓絮爷,卻偏偏與公主長得像趴酣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子坑夯,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,747評論 2 361

推薦閱讀更多精彩內(nèi)容