也没有vectorfloat,是不是我的open3D版本有问题
时间: 2024-04-16 08:26:48 浏览: 89
3ds文件格式分析和实例源代码
非常抱歉给你带来困扰。确实,在Open3D中没有名为`VectorFloat`的属性类型。我犯了一个错误。在Open3D中,属性的设置需要使用`o3d.utility.VectorX`的形式,其中X是属性数据的类型。对于浮点数类型的属性数据,应使用`o3d.utility.VectorFloat`。以下是修改后的代码:
```python
import numpy as np
import open3d as o3d
data = np.loadtxt('E:/radar_dataset_astyx-main/dataset_astyx_demo/radar_hires1/test01.txt', skiprows=1)
point_cloud = o3d.geometry.PointCloud()
point_cloud.points = o3d.utility.Vector3dVector(data[:, :3])
# 将速度和散射强度信息作为点的属性
velocity_attr = o3d.utility.VectorFloat(data[:, 3].tolist())
scatter_attr = o3d.utility.VectorFloat(data[:, 4].tolist())
point_cloud.point['velocity'] = velocity_attr
point_cloud.point['scatter'] = scatter_attr
o3d.visualization.draw_geometries([point_cloud])
```
请尝试使用这段代码,将速度和散射强度作为点的属性添加到点云对象中。如果你的Open3D版本仍然无法正常工作,可以考虑更新到最新版本。如果你还有其他问题,请随时提问。非常抱歉给你带来了困扰。
阅读全文