python——点云可视化(分割结果,及特征)

点云的特征可视化代码样例:

特征可视化

#### 特征可视化
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

points = np.loadtxt('data.txt')
skip = 20   # Skip every n points

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
point_range = range(0, points.shape[0], skip) # skip points to prevent crash
x = points[point_range, 0]
y = points[point_range, 1]
z = points[point_range, 2]
ax.scatter(x,   # x
           y,   # y
           z,   # z
           c=z, # height data for color
           cmap='Blues',
           marker="o")
ax.axis('scaled')  # {equal, scaled}
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.set_title('feature visulization')
ax.axis('off')          # 设置坐标轴不可见
ax.grid(False)          # 设置背景网格不可见

plt.show()

注:上述特征为Z轴坐标值,实际上的特征需要归一化操作,两种归一化操作见:机器学习之特征归一化(normalization)

分割结果可视化

### 分割结果可视化

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

points = np.loadtxt('data_part.txt')
skip = 5   # Skip every n points

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
point_range = range(0, points.shape[0], skip) # skip points to prevent crash
x = points[point_range, 0]
z = points[point_range, 1]
y = points[point_range, 2]
map_color = {35.0:'r', 32.0:'g', 31.0:'b', 33:'y'}
Label = points[point_range, -1]
Color = list(map(lambda  x: map_color[x], Label))

# map_maker = {-1:'o', 1:'v'}
# makers = list(map(lambda x:map_maker[x], Label))

ax.scatter(x,   # x
           y,   # y
           z,   # z
           c=Color, # height data for color
        #    cmap='Blues',
           marker="o")
ax.axis('scaled')  # {equal, scaled}
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.set_title('part_seg')
ax.axis('off')          # 设置坐标轴不可见
ax.grid(False)          # 设置背景网格不可见
plt.show()

参考:

  • 处理点云数据(三):三维点云可视化 https://blog.csdn.net/qq_33801763/article/details/78930167
  • python让scatter能够使不同类别的点有不同的颜色、大小和形状:https://blog.csdn.net/u014571489/article/details/102667570
  • python3D绘图Axes3D函数详解
  • PCL编程问题3:点云可视化 https://blog.csdn.net/lhy2677886724/article/details/88552494

你可能感兴趣的:(编程技巧,基于点云的目标检测,计算机视觉)