博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
发型试戴原理简析
阅读量:6859 次
发布时间:2019-06-26

本文共 1100 字,大约阅读时间需要 3 分钟。

RIA 使技术变得有趣起来,比如CAD,Matlab等工具,未来非常适合直接以RIA方式在线运行。技术转型后,给自己的技术方向定的很窄,RIA这一块也只关注在线图形图像应用,如在线试戴、试穿、试用、试装修等功能。试发系统已经做了好几套了,当然主要还是借鉴国外的系统和,下面简析一下发型试戴的原理。

发型试戴的两个核心问题:

(1)如何让千奇百怪的发型自动戴在千奇百怪的模特头上,戴在正确的位置上?

(2)戴上之后,用户如何调整发型?不仅仅限于放大,缩小,上下左右挪动,而是“自由”变形。

====

问题1的解决方案:

这是taaz的解决方案。假定一个标准的模特S,脸上有6个坐标点,见图:

 

 

根据5,6两点,可以求出它的中点7:

 

由点1,4,7构成一个三角形S(1,4,7)。

用户上传自己的头像U,也需要指定1-6点的坐标,由此也可以算出7点的坐标。U(1,4,7)构成另一个三角形。算出 S(1,4,7)=>U(1,4,7) 的仿射变换ASU。ASU确定了标准模特和用户上传模特的仿射变换。

关于仿射变换,这里

对于发型,由于有人脸大,有人脸小,有人脸宽,有人脸窄,因此使用的是另一个定位三角形:

 

使用上图中的8,9,10三点进行定位。对于标准模特S,可以测量得出它的8,9,10三点构成的三角形 S(8,9,10)。对于每个发型H,我们也指定一下以上三点,构成三角形H(8,9,10)。

计算H(8,9,10)=> S(8,9,10)的仿射变换AHS。AHS实现了发型图像到标准模特脸上的仿射变换。

如此一来,对于一个发型H,做两次仿射变换——ASU(AHS(H)),即可将发型戴于用户自己的头像U上。这个映射可以让发型正确“找到”自己的位置。

====

问题2的解决方案:

如果想更精细的调整发型试戴的效果,可在发型位置增加一些控制点,使用TPS样条实现变形效果,taaz是这样做的。TPS样条见我的博文 《》,这里贴张图:

TPS更详细的描述及算法见F.L. Bookstein, "Principal Warps: Thin-Plate Splines and the Decomposition of Deformations,"

也可以使用局部变形算法(见:《》),我是这样干的:

    

对比来说,TPS更好用一些,局部变形做细微调整的能力更强一点。

本文转自xiaotie博客园博客,原文链接http://www.cnblogs.com/xiaotie/archive/2010/08/19/1802957.html如需转载请自行联系原作者

xiaotie 集异璧实验室(GEBLAB)

你可能感兴趣的文章
扒一扒政府的专用黑客组织ZooPark
查看>>
Ubuntu下Deb软件包相关安装与卸载
查看>>
互联网转型需要微服务架构
查看>>
Airbus Safran Launchers:选择西门子彻底改革产品生命周期流程
查看>>
文本数据的分分合合
查看>>
无损音乐知识收集2(转)
查看>>
Java几种常见的四舍五入的方法
查看>>
vim 工具(一)
查看>>
MySQL常用命令
查看>>
zabbix snmp监控
查看>>
MySQL单实例重置密码的两种方法
查看>>
一段典型的PHP程序都包含那些内容呢?
查看>>
python paramiko模块讲解
查看>>
Windows Phone 7 数据绑定的简单介绍
查看>>
每天一个知识点linux(二)关机重启命令
查看>>
以程序的方式操纵NTFS的文件权限(下)
查看>>
LVM逻辑卷管理
查看>>
zabbix与nagios对比
查看>>
MySQL源码安装完成后修改安装路径启动问题
查看>>
合并下载的Solaris镜像为DVD文件的方法
查看>>