返回顶部
首页 > 资讯 > 精选 >pytorch液态算法如何实现瘦脸效果
  • 132
分享到

pytorch液态算法如何实现瘦脸效果

2023-06-21 21:06:12 132人浏览 八月长安
摘要

这篇文章主要介绍了PyTorch液态算法如何实现瘦脸效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。算法思路:假设当前点为(x,y),手动指定变形区域的中心点为C(cx,c

这篇文章主要介绍了PyTorch液态算法如何实现瘦脸效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

算法思路:

pytorch液态算法如何实现瘦脸效果

假设当前点为(x,y),手动指定变形区域的中心点为C(cx,cy),变形区域半径为r,手动调整变形终点(从中心点到某个位置M)为M(mx,my),变形程度为strength,当前点对应变形后的目标位置为U。变形规律如下,

  • 圆内所有像素均沿着变形向量的方向发生偏移

  • 距离圆心越近,变形程度越大

  • 距离圆周越近,变形程度越小,当像素点位于圆周时,该像素不变形

  • 圆外像素不发生偏移

pytorch液态算法如何实现瘦脸效果

其中,x是圆内任意一点坐标,c是圆心点,rmax为圆心半径,m为调整变形的终点,u为圆内任意一点x对应的变形后的位置。

对上面公式进行改进,加入变形程度控制变量strength,改进后瘦脸公式如下,

pytorch液态算法如何实现瘦脸效果

优缺点:

优点:形变思路简单直接

缺点:

  • 局部变形算法,只能基于一个中心点,向另外一个点的方向啦。如果想多个点一起拉伸,只能每个点分别做一次液化,通过针对多个部位多次液化来实现。

  • 单点拉伸的变形,可以实现瘦脸的效果,但是效果自然度有待提升。

代码实现:

import cv2import mathimport numpy as np def 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 copyImg   image = 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)

实验效果:

pytorch液态算法如何实现瘦脸效果

感谢你能够认真阅读完这篇文章,希望小编分享的“pytorch液态算法如何实现瘦脸效果”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: pytorch液态算法如何实现瘦脸效果

本文链接: https://lsjlt.com/news/300532.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • pytorch 液态算法实现瘦脸效果
    论文:Interactive Image Warping(1993年Andreas Gustafsson) 算法思路: 假设当前点为(x,y),手动指定变形区域的中心点为C(cx,...
    99+
    2024-04-02
  • pytorch液态算法如何实现瘦脸效果
    这篇文章主要介绍了pytorch液态算法如何实现瘦脸效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。算法思路:假设当前点为(x,y),手动指定变形区域的中心点为C(cx,c...
    99+
    2023-06-21
  • pytorch 膨胀算法实现大眼效果
    目录算法思路:应用场景:代码实现:实验效果: 论文:Interactive Image Warping(1993年Andreas Gustafsson) 算法思路: 以眼睛中心为中...
    99+
    2024-04-02
  • 怎么用pytorch膨胀算法实现大眼效果
    本篇内容主要讲解“怎么用pytorch膨胀算法实现大眼效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用pytorch膨胀算法实现大眼效果”吧!算法思路:以眼睛中心为中心点,对眼睛区域向外...
    99+
    2023-06-21
  • Three.js实现脸书元宇宙3D动态Logo效果
    目录背景什么是元宇宙实现效果试炼一:THREE.TorusGeometry试炼二:THREE.TorusKnotGeometry试炼三:THREE.TubeGeometry试炼四:B...
    99+
    2024-04-02
  • OpenCV-Python如何实现人脸美白算法
    这篇文章主要介绍了OpenCV-Python如何实现人脸美白算法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。人脸美白原理人脸美白原理说透了,就是一种图像的颜色空间处理,所以...
    99+
    2023-06-15
  • OpenCV-Python如何实现人脸磨皮算法
    这篇文章将为大家详细讲解有关OpenCV-Python如何实现人脸磨皮算法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。人脸磨皮是最基础的人脸美颜效果。主要分为祛斑,祛痘,淡化黑眼圈等步骤。通过前面的学习...
    99+
    2023-06-15
  • Vue动态如何实现评分效果
    小编给大家分享一下Vue动态如何实现评分效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体内容如下1.图片分为三种on:ha...
    99+
    2024-04-02
  • BootStrap如何实现动态表单效果
    小编给大家分享一下BootStrap如何实现动态表单效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!html部分 &...
    99+
    2024-04-02
  • java如何实现动态图片效果
    这篇文章主要介绍java如何实现动态图片效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!源码package forGame;import javax.imageio.ImageIO;import...
    99+
    2023-06-14
  • JavaScript如何实现动态时钟效果
    本篇内容主要讲解“JavaScript如何实现动态时钟效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript如何实现动态时钟效果”吧!配置设计var config={&...
    99+
    2023-07-02
  • JS如何实现模态框拖拽动态效果
    本篇内容主要讲解“JS如何实现模态框拖拽动态效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS如何实现模态框拖拽动态效果”吧!在实现这个案例效果首先我们了解几个属性,offsetLeft.o...
    99+
    2023-07-02
  • Pytorch如何实现常用乘法算子TensorRT
    这篇文章主要介绍了Pytorch如何实现常用乘法算子TensorRT的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Pytorch如何实现常用乘法算子TensorRT文章都会有所收获,下面我们一起来看看吧。1.乘...
    99+
    2023-06-30
  • html+css如何实现静态分页效果
    这篇文章给大家分享的是有关html+css如何实现静态分页效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   html部分   创建一个<div>,给其一个类...
    99+
    2024-04-02
  • js如何实现拖动模态框效果
    今天小编给大家分享一下js如何实现拖动模态框效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.实现效果:点击链接,弹出模...
    99+
    2023-07-02
  • 如何使用Linux瘦客户机实现云计算
    这篇文章主要讲解了“如何使用Linux瘦客户机实现云计算”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Linux瘦客户机实现云计算”吧!我们已经在大量场合中从不同的角度讨论了云计算。...
    99+
    2023-06-17
  • js如何实现动态显示时间效果
    这篇文章给大家分享的是有关js如何实现动态显示时间效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。示例代码如下:<!DOCTYPE HTML> ...
    99+
    2024-04-02
  • Android如何实现列表元素动态效果
    这篇文章主要介绍了Android如何实现列表元素动态效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android如何实现列表元素动态效果文章都会有所收获,下面我们一起来看看吧。前言列表是移动应用中用得最多的...
    99+
    2023-06-29
  • js如何实现模态框的拖拽效果
    今天小编给大家分享一下js如何实现模态框的拖拽效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。分析思路:点击弹出层,模态框...
    99+
    2023-07-02
  • php如何实现静态拼接网页效果
    这篇文章主要讲解了“php如何实现静态拼接网页效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何实现静态拼接网页效果”吧!方法一:使用 ob_start() 和 ob_get_co...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作