python 中的静态转换等效项
Static cast equivalent in python
我的问题如下:
我正在使用 ROS,我目前正在尝试从 Kinect 传感器的点云中读取值。
这些值是 PointCloud2 类型,PointCloud2.data 保存 PointCloud 的数据并且是 uint8[].
类型
在我的项目中,我目前正在使用 python,并且我已经成功注册并检索了数据。我的问题是当试图检索它们时 python 将 uint8[] 数组解析为字符串。
我遇到问题的脚本的当前部分是:
def PointCloud(self, PointCloud2):
self.lock.acquire()
for x in PointCloud2.data:
print x
self.lock.release()
我知道在 C++ 中我可以做类似的事情
std::cout << static_cast< int >( u );
获取无符号整数的值。是否有等效于 python 的静态转换?
在我的例子中,print x 输出 ASCII 字符。
我如何检索它的 int 值?
干杯,
帕诺斯
使用struct.unpack
得到x
中二进制数据编码的整数值。
print struct.unpack("!I", x)
(我假设 x
包含网络字节顺序的 4 字节整数;如果您需要 !I
以外的格式,请参阅 struct
模块的文档。 )
更新:我错过了你有一个无符号字节数组;在这种情况下,使用
struct.unpack("B", x)
Python 不支持任何形式的转换;这是邪恶的。
实现您想要的一个版本是将数据转换为十六进制:
print ['%02x' % e for e in PointCloud2.data]
或者您可以使用 struct
module to convert binary data into Python structures. If you want to process the data, you should look at Numpy which has an array
type that you can create from a lot of different source.
图片处理,看OpenCV. And for existing Python tools to work with Kinect, see Python- How to configure and use Kinect
我的问题如下:
我正在使用 ROS,我目前正在尝试从 Kinect 传感器的点云中读取值。 这些值是 PointCloud2 类型,PointCloud2.data 保存 PointCloud 的数据并且是 uint8[].
类型在我的项目中,我目前正在使用 python,并且我已经成功注册并检索了数据。我的问题是当试图检索它们时 python 将 uint8[] 数组解析为字符串。
我遇到问题的脚本的当前部分是:
def PointCloud(self, PointCloud2):
self.lock.acquire()
for x in PointCloud2.data:
print x
self.lock.release()
我知道在 C++ 中我可以做类似的事情
std::cout << static_cast< int >( u );
获取无符号整数的值。是否有等效于 python 的静态转换?
在我的例子中,print x 输出 ASCII 字符。 我如何检索它的 int 值?
干杯,
帕诺斯
使用struct.unpack
得到x
中二进制数据编码的整数值。
print struct.unpack("!I", x)
(我假设 x
包含网络字节顺序的 4 字节整数;如果您需要 !I
以外的格式,请参阅 struct
模块的文档。 )
更新:我错过了你有一个无符号字节数组;在这种情况下,使用
struct.unpack("B", x)
Python 不支持任何形式的转换;这是邪恶的。
实现您想要的一个版本是将数据转换为十六进制:
print ['%02x' % e for e in PointCloud2.data]
或者您可以使用 struct
module to convert binary data into Python structures. If you want to process the data, you should look at Numpy which has an array
type that you can create from a lot of different source.
图片处理,看OpenCV. And for existing Python tools to work with Kinect, see Python- How to configure and use Kinect