国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

瘦臉之液化算法

BWrong / 2292人閱讀

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

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

算法思路

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

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

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

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

優(yōu)缺點

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

缺點:

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

代碼實現(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    # 計算公式中的|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)

實驗效果

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/125087.html

相關(guān)文章

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

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

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

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

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

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

    jone5679 評論0 收藏0
  • 最少知識原則模式的黃金原則

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

    Ocean 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<