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);

结果展示

图片: MATLAB将顶点和三角面片数据写入obj文件