我有以下代码。我试图保存一个16位深度的图像,我从Kinect v1检索为png文件。我写了以下代码示例:
def display_depth(dev, data, timestamp):
global keep_runningp
#cv2.imshow('Depth', frame_convert2.pretty_depth_cv(data))
cv2.imshow('Depth', frame_convert2.pretty_depth_cv(data))
print type(data)
print data.shape
depthf.write(repr(timestamp)+" Depth/"+repr(timestamp)+".png\n")
namef="Sample_dataset/Depth/"+repr(timestamp)+".png"
cv2.imwrite(namef,frame_convert2.pretty_depth(data))
if cv2.waitKey(10) == 27:
keep_running = False
当我添加以下代码时,它可以工作,它将数据从16位无符号转换为8位无符号NumPy数组:
depth = depth.astype(np.uint8)
没有这一行,我只是得到整个空白/白色png图像。但我需要一个16位的png文件。
如何将其保存为16位png文件?
答案 0 :(得分:1)
虽然我的数据类型是这样的
<type 'numpy.uint16'>
解决方案,我的问题是将此行添加到我的代码
depth.astype(np.uint16)