基于MATLAB三角剖分的人脸数据对齐

基于MATLAB三角剖分的人脸数据对齐,matlab,plot,triangulation,Matlab,Plot,Triangulation,我有一个函数f(x,y),它有一些对称性,我想画出来。以下是一个例子: 此图可通过以下方式生成: [x,y,z] = 0 0 0.1415 0.1999 0.1999 0.1165 0.2760 0 0.1268 0.3694 0.3694 0.0983 0.4830 0 0.1142 0.5090 0.5090 0.0903 0.5550 0.1871 0.0881 0

我有一个函数f(x,y),它有一些对称性,我想画出来。以下是一个例子:

此图可通过以下方式生成:

[x,y,z] =
     0         0    0.1415
0.1999    0.1999    0.1165
0.2760         0    0.1268
0.3694    0.3694    0.0983
0.4830         0    0.1142
0.5090    0.5090    0.0903
0.5550    0.1871    0.0881
0.6189    0.3558    0.0715
0.6197    0.6197    0.0907
0.6399         0    0.1056
0.7071    0.7071    0.1415
0.7169    0.4835    0.0869
0.7215    0.1200    0.0859
0.7304    0.2392    0.0680
0.7643         0    0.1005
0.7926    0.3574    0.0856
0.8090    0.5878    0.1393
0.8581    0.1122    0.0821
0.8634    0.2343    0.0878
0.8794         0    0.0986
0.8910    0.4540    0.1332
0.9511    0.3090    0.1253
0.9877    0.1564    0.1191
1.0000         0    0.1169

t = 
 6     4     8
12     6     8
 8     4     7
 4     2     7
 8     7    14
14     7    13
 3     2     1
 5     7     3
 3     7     2
17    12    21
 6    12     9
 9    17    11
12    17     9
10    15    13
10     7     5
13     7    10
21    12    16
16    12     8
 8    14    16
18    14    13
15    20    18
13    15    18
24    23    18
18    20    24
21    16    22
23    22    19
19    18    23
14    18    19
19    16    14
19    22    16

trisurf(t,x,y,z)
所以我知道函数有一个关于y=x的反射对称性,然后得到的函数将在所有象限中重复。以下是执行此操作的代码:

allx = [x; x;-x;-x;y; y;-y;-y];
ally = [y;-y; y;-y;x;-x; x;-x];
allz = [z; z; z; z;z; z; z; z];
这些是我要绘制的曲面的新顶点。现在,我如何正确地为这个新曲面生成面

当我使用更精细的网格并添加一些漂亮的灯光时,应该是这样的:

推测性:

因此,您的问题是如何设置
trisurf
的第一个参数,即如何在代码中定义扩展的
t
。根据定义,这是由剩余参数定义的顶点索引。我没有在这台机器上安装MATLAB,但是如果您安装了:

allx = [x; x;-x;-x];
ally = [y;-y; y;-y];
allz = [z; z; z; z];
s = size(x,1);
t = [t; t + s; t + 2*s; t + 3*s]

试着想想这是否有意义,以及它是否/如何延伸到其他象限。

我不完全理解这里发生了什么。我建议扩展您的代码,以便它为
fun
生成值,人们可以进行实验,并更详细地解释(和/或添加到代码中)您所说的“人脸数据”和对齐人脸的意思。@MrE-感谢您的快速回复。我已经编辑了这个问题,希望能让它更清楚我在寻找什么。它很有效,谢谢!是的,它确实扩展了。以下是结果:。