'''
# -*- coding: utf-8 -*-
# @Time    : 2020/12/7 下午2:32
# @Author  : YAO XINGTIAN
# @FileName: abs.py
# @Software: PyCharm
# @Blog    :https://mp.csdn.net/editor/html/110819381/
'''
abs.gz文件批量解压:
import gzip
import glob

save_path = '/media/yao/Elements SE/AI/Datasets/FRGC2.0/Fall2003range_extract/' # 文件保存目录
file_list = glob.glob('/media/yao/Elements SE/AI/Datasets/FRGC2.0/Fall2003range/*gz') # 获取abs.gz 文件列表

sum = 0
for file in file_list:
     print(file)
     file_name_ = file.split('/')[-1].split('.')[0] # # 获取文件名
     file_name = file_name_ + '.xyz' # 保存的文件格式
     print(file_name)

     #对压缩文件.gz进行解压
     g_file = gzip.GzipFile(file)
     #将解压后的文件保存到save_path里面
     open(save_path+file_name, "wb+").write(g_file.read())
     g_file.close()
     sum += 1

print('total files:' , sum)



FRGC2.0 中abs文件解析

import os
readpath='/home/yao/PycharmProjects/Image_pre/absFiles' # abs文件目录
writepath='02463d546' # 保存文件目录

if not os.path.exists(writepath):
    os.makedirs(writepath)
for root,dir,files in os.walk(readpath):
    # print(root,dir,files)
    for newfilename in files:
        abs_path=os.path.join(readpath,newfilename)
        print('newfilename',newfilename)
        absfile=open(abs_path,'r')
        xyzpath=os.path.join(writepath,os.path.splitext(newfilename)[0]+'.xyz')
        print('xyzpath',xyzpath)
        xyzfile=open(xyzpath,'w')
        tab=str.split(absfile.readline())
        print('tab',tab)
        rows=int(tab[0])
        tab=str.split(absfile.readline())
        columns=int(tab[0])
        tab=str.split(absfile.readline())
        flags=list(map(int,str.split(absfile.readline())))
        X=list(map(float,str.split(absfile.readline())))
        Y=list(map(float,str.split(absfile.readline())))
        Y_sorted=sorted(Y)
        print(len(Y_sorted))
        # exit()
        # size=len(Y_sorted)

        Z=list(map(float,str.split(absfile.readline())))
        absfile.close()
        size=len(X)
        # print(size)
        croppedface=[]
        for i in range(0,size):
            if flags[i]==1:
                if Y[i]> -150:
                    line=str(X[i]) + ' ' + str(Y[i]) + ' ' + str(Z[i]) + '\n'
                    xyzfile.write(line)
        xyzfile.close()

xyz点云图如下:

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐