在PS中,我们可以利用液化工具对人像进行形变处理,例如瘦脸、瘦腿、放大眼睛等一系列的常规操作。今天我们来了解一下这些操作的算法原理,调研该算法我参考了一篇博士毕业论文《Interactive Image Warping》。该论文重点在4.4节介绍了局部平移、局部缩放、局部旋转的实现算法,在局部变化中,作者设置一个点C和rmax作为圆形变化区域的圆心和半径,通过鼠标拖拽C点致使图片变形,在形变过程中遵守在圆形区域内越靠近变形中心C点的点形变越明显,反之亦然。下面我们再详细看一下变形后的像素是怎么计算的。

Local translation warps局部平移

mapping function:

解释:下图中,阴影圆环代表一个半径为 rmax 的圆形选区。其中,C点是鼠标点下时的点,也就是圆形选区的圆心。鼠标从C拖到M,致使图像中的点U变换到点X。所以,关键问题是找到上面这个变换的逆变换——给出点X时,可以求出它变换前的坐标U(精确的浮点坐标),然后用变化前图像在U点附近的像素进行插值,求出U的像素值。如此对圆形选区内的每一个像素进行求值,便可得出变换后的图像。

Local scaling warps局部缩放

mapping function:

解释:rmax为圆形选区的半径,r为控制点移动位移,即目的矢量,as是(-1,1)之间的缩放参数,a<0表示缩小,a>0表示放大,给出点X时,可以求出它变换前的坐标U(精确的浮点坐标),然后用变化前图像在U点附近的像素进行插值,求出U的像素值。如此对圆形选区内的每一个像素进行求值,便可得出变换后的图像。

Local rotation warps局部旋转

mapping function:

android 人脸变形,人脸形变算法——液化变形相关推荐

  1. 人脸形变算法——液化变形

    在PS中,我们可以利用液化工具对人像进行形变处理,例如瘦脸.瘦腿.放大眼睛等一系列的常规操作.今天我们来了解一下这些操作的算法原理,调研该算法我参考了一篇博士毕业论文<Interactive I ...

  2. android动态贴纸实现原理,人脸动态贴纸sdk算法详解,人脸动态贴纸功能如何实现...

    原标题:人脸动态贴纸sdk算法详解,人脸动态贴纸功能如何实现 泛娱乐行业在互联网领域中发展趋势逐渐增强,而直播.短视频.视频社交等作为头部产品受到了众多用户的关注和喜爱.为了能够更好的满足用户体验,众 ...

  3. 人脸识别的主要算法以及原理

    人脸识别的主要算法以及原理 主流的人脸识别技术基本上可以归结为三类,即:基于几何特征的方法.基于模板的方法和基于模型的方法. 1. 基于几何特征的方法是最早.最传统的方法,通常需要和其他算法结合才能有 ...

  4. PFLD:简单、快速、超高精度人脸特征点检测算法

    作者 | 周强(CV君) 来源 | 我爱计算机视觉(公众号id:aicvml) 60s测试:你是否适合转型人工智能? https://edu.csdn.net/topic/ai30?utm_sourc ...

  5. Android园区部队人脸识别源码门禁项目讲解

    Android园区部队人脸识别源码门禁项目讲解 这边搞人脸识别相关项目有一段时间,今天抽时间讲述一个经典的人脸识别项目:部队人脸识别门禁系统. 大家都知道部队对人员管理安全要求是相当高的,很多保密的技 ...

  6. Android NDK开发——人脸检测与静默活体检测

    前言 1.开发环境是win10,IDE是Android studio 北极狐,用到的库有NCNN,OpenCV. 2.NCNN库可以用官方编译好的releases库,也可以按官方文档自己编译. 3.O ...

  7. 基于Android系统的人脸识别签到软件

    项目名称:   基于Android系统的人脸识别签到软件 目  录 1 项目介绍..... 1 1.1 项目背景.... 1 1.2 产品特点.... 2 1.3 可行性分析.... 2 1.3.1 ...

  8. 基于Android端的照片比对系统,基于Android系统的人脸识别系统

    [文章摘要] 当前随着基于Android系统的移动终端设备的广泛应用,以及图像采集设备的普遍集成,使得Android系统的图像采集设备除了具有照相.摄像功能以外,正在扩展新的实用型功能.其中,利用An ...

  9. android 动态人脸识别码,Android开发中人脸识别(静态)

    知道没有妹纸,你们是不会看的.先放效果图 最近,项目中需要用到人脸识别,苦于无奈,各种百度,google有关Android开发中人脸识别的内容,最终发现Android官方自带的FaceDetector ...

最新文章

  1. c 语言 按位与或非运算符,C++中的按位与、按位与或|、按位异或^运算符详解
  2. MFC中制作一个似命令行的输入框
  3. VC6程序申请管理员权限
  4. 2019年, video captioning论文汇总
  5. 怎样填写个人简历较有效
  6. linux sublime nodejs,Ubuntu环境下sublime3 nodejs安装与插件配置
  7. Windows API ——WritePrivateProfileString——配置文件
  8. [Node.js]001.安装与环境配置
  9. 聊聊springboot2的embeded container的配置改动 1
  10. 《密码安全新技术专题》 第十一周作业
  11. 谷歌大小写转换_如何轻松更改Google文档中文本的大小写
  12. ucoreOS-lab0
  13. 详解申请微信h5支付方法,开通微信h5网页支付接口(转)
  14. Leetcode-数据结构-53.最大子数组和
  15. 将PPT文件转换为Word文档
  16. 一位3年测试工程师的焦虑:月薪还不到3W,真的很担心被后面的小年轻挤掉......
  17. SpringBoot写一个聊天工具
  18. 如何使用Docker搭建Heimdall-打造你自己的专属浏览器首页
  19. 中国00后身高东亚第一,依旧没逃过“180歧视”
  20. 全国继续教育网计算机,全国中小学教师继续教育网

热门文章

  1. nginx 检测脚本
  2. 你的气质里藏着 英文_你的气质里,藏着你走过的路,读过的书,见过的人,看过的风景……...
  3. python如何计算累乘和累加
  4. 对抗神经网络之对抗卷积神经网络[2]
  5. 阿里开源的分布式事务揭秘:Seata原理及流程剖析
  6. 微信小程序view的折叠与展开
  7. ApiPost使用时的一些坑
  8. ArcGIS水文分析提取河网及流域
  9. linux无法关闭防火墙设置,Linux关闭防火墙以及设置允许端口
  10. WPS JS 宏实现表间导入