IMWRITE 16 位 PNG 深度图像



我有以下代码。我正在尝试将从 Kinect v1 检索的 16 位深度图像保存为 png 文件。我编写了以下代码示例:

def display_depth(dev, data, timestamp):
    global keep_runningp    
    cv2.imshow('Depth', frame_convert2.pretty_depth_cv(data))
    depthf.write(repr(timestamp)+" Depth/"+repr(timestamp)+".pngn")
    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 文件?

虽然我的数据类型是这样的

<type 'numpy.uint16'>

解决方案,我的问题是将此行添加到我的代码中

depth.astype(np.uint16)

最新更新