MATLAB将顶点和三角面片数据写入obj文件
MATLAB将顶点和三角面片数据写入obj文件
我翻阅了网上资料,难以找到一个完整的将已有顶点和三角面片数据写入obj文件的代码,于是自己写了一小段,仅供参考。我们在利用3DMM拟合人脸时,通过对shape,pose,expression的优化,保存了对应的3D点,以及利用三角面片信息,就能生成对应人脸的三维模型,写入obj文件即可在meshlab上观看完整的立体三维模型。
code:
vertices = vertex3d';
faces = tri';
filename = 'Morphable_Model.obj';
file = fopen(filename, 'w');
for i=1:size(vertices, 1)
fprintf(file, 'v ');
for j=1:(size(vertices, 2)-1)
fprintf(file, '%f ', vertices(i, j));
end
fprintf(file, '%f\r\n', vertices(i, size(vertices, 2)));
end
for i=1:size(faces, 1)
fprintf(file, 'f ');
for j=1:(size(faces, 2)-1)
fprintf(file, '%f ', faces(i, j));
end
fprintf(file, '%f\r\n', faces(i, size(faces, 2)));
end
fclose(file);
结果展示
图片: