obj文件:如何用 matlab 打开 obj 文件
- 第一步:检查obj文本格式
- 第二步:用 Blender 软件重新导出obj文件
- 第三步:用excel 打开这个obj 文件
- 第四步:复制excel中的数据,传给matlab
- 第五步: 用matlab 打开3D模型
第一步:检查obj文本格式
将obj 文件用txt文本形式打开,看里面的格式是否利于用excel读取数据

因为这个obj文件比较小,行数没有超过excel最大行数,所以可以用excel打开
第二步:用 Blender 软件重新导出obj文件
Blender 软件选择“文件”->“导入”->“obj”,然后选择该obj文件

看到加载出这个obj文件后,就可以导出文件了:

在obj导出弹窗,选择存储位置和存储名称,选择包括在内的内容,包括顶点,法线和三角面
然后在相应位置会生成obj文件,可以右键选择用记事本打开


第三步:用excel 打开这个obj 文件
因为暂时还没有写代码去读取,所以将这个obj转换成txt,用excel处理,再将数据手动复制到matlab打开。
复制一个obj文件的副本,然后将副本的后缀改成txt形式

在同一个文件夹中,新建一个excel 表格,命名为 testBlender02.xlse ,然后打开
用excel,选择“文件”:

第二步,选择“打开”:

选择“浏览”

第四步,选择“所有文件”,然后选择 上一步生成的txt文件
图1是offce的excel的样式

图2是WPS的excel 的样式

在自动的弹窗中,选择分隔符号,选择下一步

Txt中主要是 空格 和 / 分隔数据的,所以需要勾选“空格”和 “/”,然后选择 “下一步”

即可成功打开。
如果数据行数超过excel表格的最大行数,会报错导致无法用excel打开
第四步:复制excel中的数据,传给matlab
首先打开matlab,将malab的路径改成 spherical-confromal-map-master 文件夹的路径:


在工作区的空白处,右键点击,选择 “清空工作区”

确保工作区是空的之后,再用右键,选择“新建” ,新建两个表格,分别命名为 v 和 f, 表示顶点和三角形面。

建立好f 和 v 两个表格后,打开v表格

同时打开上一步生成的 excel表格,在左上方单元格输入v的范围:B6:D12448, 然后按 “回车”
Excel 会自动选中需要的数据,右键选中“复制”,将这些数据,复制到 matlab 的 v表格中。

这是将v的数据复制过后的样子。

同样,把f的数据复制到matlab的f表格当中。注意 f 的格式,如果是 f # # # # # # # # #(有纹理坐标和法向量),那么只取第1,4,7列,如果 f # # # # # # (没有纹理坐标,只有法向量)只取第1,3,5列。详情可以参考obj文件(1):obj文件用txt打开并且了解v,f,vn,vt的含义
键盘按住 shift 键,鼠标左键选中工作区的 f 和 v。键盘再按 shift+s,跳出的保存弹窗,将文件命名为 6.3 carton2.mat ,然后点击 “保存”

第五步: 用matlab 打开3D模型
在左边文件栏,会出现保存好的文件,清空工作区后,再双击 6.3 carton2.mat ,可以看到工作区出现f和v表格

在左栏的“当前文件夹”中,右键点击,选择 “新建” -> “脚本”,命名为 openOBJ.mat

双击打开openOBJ.mat, 输入:
%% 这是一段打开 obj 文件的代码
load('6.3 carton2.mat')
patch('Faces',f,'Vertices',v,'FaceColor',[0.6,1,1],'LineWidth',0.5);

点击运行,在命令窗口中显示 openOBJ, 然后有弹窗是 输入的obj模型的网格图

然后可以根据下图来转动 figure 1 的3D模型
















![[学习笔记]OpenFlow概述(1)](https://img-blog.csdnimg.cn/ecd60b28706b4008a5c712c85173848e.png)