一、obj格式模型介紹
文件說明很有必要,有助於數據提取時的理解。這一部分借鑑OBJ格式模型詳細介紹
obj格式有4種數據,分別以一下字母開頭:
1. v頂點
2. vt紋理座標
3. vn頂點法向量
4. f 面
二、3D模型
通過Meshlab可以直接打開obj文件,並進行各種操作,如下圖
三、代碼
雖然通過一些3D軟件可以令obj文件可視化,但不能直接讀取其中的數據,因此需要通過編程解決。
import os
import numpy as np
objFilePath = 'G:\obj\xxx.obj'
with open(objFilePath) as file:
points = []
while 1:
line = file.readline()
if not line:
break
strs = line.split(" ")
if strs[0] == "v":
points.append((float(strs[1]), float(strs[2]), float(strs[3])))
if strs[0] == "vt":
break
# points原本爲列表,需要轉變爲矩陣,方便處理
points = np.array(points)
最終三維座標就保存在points中了
同理想要提取紋理信息,只要修改判決條件即可。