不要用skimage.measure库
时间: 2023-09-25 12:13:33 浏览: 92
python skimage 连通性区域检测方法
好的,您可以尝试使用以下代码进行点云的体素化,并将结果保存到新的txt文件中:
```python
import numpy as np
# 读取点云数据
point_cloud = np.loadtxt('path/to/point_cloud.txt')
# 将点云数据转换为体素数据
voxel_size = 0.1 # 设置体素大小
voxel_grid = np.zeros((int(np.ceil((np.max(point_cloud, axis=0) - np.min(point_cloud, axis=0)) / voxel_size))+1).astype(int))
offset = np.min(point_cloud, axis=0)
idx = ((point_cloud - offset) / voxel_size).astype(int)
voxel_grid[idx[:,0], idx[:,1], idx[:,2]] = 1
# 将体素数据转换为点云数据
voxel_points = np.argwhere(voxel_grid == 1) * voxel_size + offset
# 写入新的txt文件
np.savetxt('path/to/voxel_grid.txt', voxel_points)
```
其中,`point_cloud`是原始点云数据,`voxel_size`是体素大小,`voxel_grid`是经过体素化后的体素数据,`offset`是点云数据中的最小值,`idx`是点云数据中每个点的体素坐标,`voxel_points`是经过体素化后的点云数据。代码中使用了`numpy.zeros`函数创建一个与体素网格相同大小的全零数组,然后将点云数据中每个点的体素坐标设置为1,得到体素网格。最后使用`numpy.argwhere`函数找出体素网格中的非零位置,并将其转换为点云数据。请将代码中的`path/to`替换为您的文件路径。
阅读全文