微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否在Matlab中保存Kinect深度图像?

如何解决是否在Matlab中保存Kinect深度图像?

| 通过使用Kinect,我可以获得深度图像,其中每个深度图像像素都存储了相机和物体之间的距离(以毫米为单位)。现在,我想保存它们,以便以后使用。最好的建议是什么? 我正在考虑将深度图像另存为图像(jpg / png等)。但是,该值通常为50毫米至10000毫米,而普通图像元素可以存储0-255。然后,我需要将数据缩放到0-255的范围,这可能会以某种方式利用数据。     

解决方法

        您可以使用任何支持16位灰度图像的格式,例如tiff或png,因为您的数据可以容纳16位(2 ^ 16-1 = 65535)。 当然,使用这些格式的优点是您可以使用其他程序读取它们。由于压缩伪像,您很可能不想使用jpeg格式。 这是matlab文档关于png格式的写入的内容: 默认情况下,如果图像为double或uint8,则imwrite每像素使用8位;如果图像为uint16,则每像素16位;如果图像符合逻辑,则每个像素1位。 因此,如果您将数据存储为uint16,就可以了。     ,        您可以使用命令save()和load()将矩阵直接存储到光盘上。但是只有Matlab才能读取它。这是最佳选择,因为您根本不会损失精度。 如果必须将值缩放到0..255,请不要线性缩放。您需要更高的精度来接近对象。因此,只需将以下函数应用于矩阵 ln(DepthImage-49)* 25可获得大约0..255的值。现在保存图像,并在加载时应用反向功能。 通过这种方式(使用局域网功能),您的精度将受到较少的损害     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。