MATLAB图像处理编程与应用,基于matlab的数字图像处理课程设计
有以下代码。我试图保存16位深度图像。已从Kinect v1中检索到png文件。编写了下面的代码示例。写入im 16位png深度图像
efdisplay_depth(设备、数据、时间戳) :
全局keep _ runningp
#cv2.imshow(深度),frame_convert2.pretty_depth_cv)数据)
cv2.imshow(深度,frame_convert2.pretty_depth_cv)数据) )
打印类型(数据)。
打印数据。形状
EPTHF.write(repr(时间戳)深度/(repr)时间戳(。pngn))))))))))))).
namef= sample _ dataset/depth/ repr(时间戳)。png
CV2.imwrite(namef,frame_convert2.pretty_depth)数据) )
ifcv2.waitkey(10 )==27:
保持运行=假
添加以下代码后,其工作模式将从16位无符号数据转换为8位无符号NumPy数组:
Depth=Depth.astype(NP.uint8)))))).
没有这条线。我只得到整个空白/白色的PNG图像。但是,需要16位PNG文件。
如何将其保存为16位PNG文件?
2017-06-17
米尔米克斯
一个
如果是我创建的(例如, a=np.random.randint (0,65536,size=) 48,48,3))。然后运行astype(NP . uint 16) cv2 . im write) foo . png ,a)获取16位RGB文件。如果我用 a=np.random.randint (0,65535,size=) 48,48)。Astype(NP.uint16),我得到一个16位的灰度图像。换句话说,cv2.imwrite())适用于我。我认为我们需要(最小的、完整的、可验证的例子)(斯塔克overflow.com/help/mcve)来帮助你。
一个
正在保存“frame _ convert 2 . pretty _ depth(data)”。这意味着存储8位图像而不是16位图像。查看【函数实现】65https://github . com/open Kinect/libfreeneck/blob/master/wrappers/python/frame _ convert 2 . py。
0
我实现了自己定制的frame_convert并导入了它。