三維人臉重建(一)——Python讀取obj文件

一、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中了
同理想要提取紋理信息,只要修改判決條件即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章