def loadDepthMap(self,filename=None,objName=None,imgNum=None):
'''
Read a kinect depth-map as stored with the linemod dataset
'''
if filename is None:
filename = '{basepath}{objname}/data/depth{num}.dpt'.format(basepath=self.basepath,objname=objName,num=imgNum)
_,ext = os.path.splitext(filename)
if ext == ".dpt":
with open(filename) as f:
h,w = numpy.fromfile(f,dtype=numpy.uint32,count=2)
#print('w {}, h {}'.format(w,h))
data = numpy.fromfile(f,dtype=numpy.uint16,count=w*h)
data = data.reshape((h,w))
data = data.astype(numpy.float32)/10. # make it cm, as everything else is in cm now
elif ext == ".png":
data = cv2.imread(filename,cv2.IMREAD_UNCHANGED).astype(numpy.float32) / 10.
else:
raise ValueError("Unkown depth image file format '{}'".format(ext))
return data
评论列表
文章目录