成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

瘦臉之液化算法

BWrong / 2329人閱讀

摘要:對(duì)上面公式進(jìn)行改進(jìn),加入變形程度控制變量,改進(jìn)后瘦臉公式如下,優(yōu)缺點(diǎn)優(yōu)點(diǎn)形變思路簡(jiǎn)單直接缺點(diǎn)局部變形算法,只能基于一個(gè)中心點(diǎn),向另外一個(gè)點(diǎn)的方向啦。單點(diǎn)拉伸的變形,可以實(shí)現(xiàn)瘦臉的效果,但是效果自然度有待提升。

論文:Interactive Image Warping(1993年Andreas Gustafsson)

算法思路

假設(shè)當(dāng)前點(diǎn)為(x,y),手動(dòng)指定變形區(qū)域的中心點(diǎn)為C(cx,cy),變形區(qū)域半徑為r,手動(dòng)調(diào)整變形終點(diǎn)(從中心點(diǎn)到某個(gè)位置M)為M(mx,my),變形程度為strength,當(dāng)前點(diǎn)對(duì)應(yīng)變形后的目標(biāo)位置為U。變形規(guī)律如下,

  1. 圓內(nèi)所有像素均沿著變形向量的方向發(fā)生偏移
  2. 距離圓心越近,變形程度越大
  3. 距離圓周越近,變形程度越小,當(dāng)像素點(diǎn)位于圓周時(shí),該像素不變形
  4. 圓外像素不發(fā)生偏移

其中,x是圓內(nèi)任意一點(diǎn)坐標(biāo),c是圓心點(diǎn),rmax為圓心半徑,m為調(diào)整變形的終點(diǎn),u為圓內(nèi)任意一點(diǎn)x對(duì)應(yīng)的變形后的位置。

對(duì)上面公式進(jìn)行改進(jìn),加入變形程度控制變量strength,改進(jìn)后瘦臉公式如下,

優(yōu)缺點(diǎn)

優(yōu)點(diǎn):形變思路簡(jiǎn)單直接

缺點(diǎn):

  1. 局部變形算法,只能基于一個(gè)中心點(diǎn),向另外一個(gè)點(diǎn)的方向啦。如果想多個(gè)點(diǎn)一起拉伸,只能每個(gè)點(diǎn)分別做一次液化,通過(guò)針對(duì)多個(gè)部位多次液化來(lái)實(shí)現(xiàn)。
  2. 單點(diǎn)拉伸的變形,可以實(shí)現(xiàn)瘦臉的效果,但是效果自然度有待提升。

代碼實(shí)現(xiàn)

import cv2import mathimport numpy as npdef localTranslationWarpFastWithStrength(srcImg, startX, startY, endX, endY, radius, strength):    ddradius = float(radius * radius)    copyImg = np.zeros(srcImg.shape, np.uint8)    copyImg = srcImg.copy()    maskImg = np.zeros(srcImg.shape[:2], np.uint8)    cv2.circle(maskImg, (startX, startY), math.ceil(radius), (255, 255, 255), -1)    K0 = 100/strength    # 計(jì)算公式中的|m-c|^2    ddmc_x = (endX - startX) * (endX - startX)    ddmc_y = (endY - startY) * (endY - startY)    H, W, C = srcImg.shape    mapX = np.vstack([np.arange(W).astype(np.float32).reshape(1, -1)] * H)    mapY = np.hstack([np.arange(H).astype(np.float32).reshape(-1, 1)] * W)    distance_x = (mapX - startX) * (mapX - startX)    distance_y = (mapY - startY) * (mapY - startY)    distance = distance_x + distance_y    K1 = np.sqrt(distance)    ratio_x = (ddradius - distance_x) / (ddradius - distance_x + K0 * ddmc_x)    ratio_y = (ddradius - distance_y) / (ddradius - distance_y + K0 * ddmc_y)    ratio_x = ratio_x * ratio_x    ratio_y = ratio_y * ratio_y    UX = mapX - ratio_x * (endX - startX) * (1 - K1/radius)    UY = mapY - ratio_y * (endY - startY) * (1 - K1/radius)    np.copyto(UX, mapX, where=maskImg == 0)    np.copyto(UY, mapY, where=maskImg == 0)    UX = UX.astype(np.float32)    UY = UY.astype(np.float32)    copyImg = cv2.remap(srcImg, UX, UY, interpolation=cv2.INTER_LINEAR)    return copyImgimage = cv2.imread("./tests/images/klst.jpeg")processed_image = image.copy()startX_left, startY_left, endX_left, endY_left = 101, 266, 192, 233startX_right, startY_right, endX_right, endY_right = 287, 275, 192, 233radius = 45strength = 100# 瘦左邊臉                                                                           processed_image = localTranslationWarpFastWithStrength(processed_image, startX_left, startY_left, endX_left, endY_left, radius, strength)# 瘦右邊臉                                                                           processed_image = localTranslationWarpFastWithStrength(processed_image, startX_right, startY_right, endX_right, endY_right, radius, strength)cv2.imwrite("thin.jpg", processed_image)

實(shí)驗(yàn)效果

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/125087.html

相關(guān)文章

  • 天然氣專題研究報(bào)告(合集)

    摘要:查看行業(yè)專題分析報(bào)告就上參一江湖,更多專題報(bào)告持續(xù)更新中。 查看行業(yè)專題分析報(bào)告就上參一江湖,更多專題報(bào)告持續(xù)更新中。每項(xiàng)專題報(bào)告都是從2019開(kāi)始更新到至今,后續(xù)將持續(xù)更新... 今天為大家分享天然氣專題研究報(bào)告的部分目錄如下 : ———————公眾號(hào):參一江湖——————— ?2021...

    Tamic 評(píng)論0 收藏0
  • 小記-用canvas完成圖像液化(向前變形)過(guò)程

    摘要:前幾天由于團(tuán)隊(duì)需要,折騰了一下圖像液化的處理過(guò)程。現(xiàn)在來(lái)整理一下思路,做個(gè)記錄。用到公式如下,網(wǎng)上拿來(lái)的話不多說(shuō),上代碼本來(lái)想盡量寫(xiě)出點(diǎn)逼格。。。后來(lái)發(fā)現(xiàn)怎么寫(xiě)也還是幾個(gè)搞定,就那樣了。然后再用的把轉(zhuǎn)換后的輸出到中效果圖如下 前幾天由于團(tuán)隊(duì)需要,折騰了一下圖像液化的處理過(guò)程。 現(xiàn)在來(lái)整理一下思路,做個(gè)記錄。 用到公式如下,網(wǎng)上拿來(lái)的 showImg(https://segm...

    Cheng_Gang 評(píng)論0 收藏0
  • 小記-用canvas完成圖像液化(向前變形)過(guò)程

    摘要:前幾天由于團(tuán)隊(duì)需要,折騰了一下圖像液化的處理過(guò)程。現(xiàn)在來(lái)整理一下思路,做個(gè)記錄。用到公式如下,網(wǎng)上拿來(lái)的話不多說(shuō),上代碼本來(lái)想盡量寫(xiě)出點(diǎn)逼格。。。后來(lái)發(fā)現(xiàn)怎么寫(xiě)也還是幾個(gè)搞定,就那樣了。然后再用的把轉(zhuǎn)換后的輸出到中效果圖如下 前幾天由于團(tuán)隊(duì)需要,折騰了一下圖像液化的處理過(guò)程。 現(xiàn)在來(lái)整理一下思路,做個(gè)記錄。 用到公式如下,網(wǎng)上拿來(lái)的 showImg(https://segm...

    jone5679 評(píng)論0 收藏0
  • 最少知識(shí)原則模式的黃金原則

    摘要:最少知識(shí)原則的終極目標(biāo)的是實(shí)現(xiàn)完全傻瓜式的程序。我們?nèi)绾巫龅浇獬龑?duì)象間的耦合性主要手段還是很多的。最少知識(shí)原則的實(shí)現(xiàn)其實(shí),最少知識(shí)原則和單一原則所達(dá)到目的是相似的,一個(gè)是,讓你的程序?qū)ν獗M量簡(jiǎn)單,一個(gè)是讓你的程序里的對(duì)象,相互聯(lián)系盡量簡(jiǎn)單。 最少知識(shí)原則的終極目標(biāo)的是實(shí)現(xiàn)完全傻瓜式的程序。 舉個(gè)例子吧, 就比如 美圖神器, 你上傳一張鳳姐的照片后,你可以選擇 自然磨皮,高度磨皮 -> ...

    Ocean 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<