将点云中的部分点云及其法向量截取出来
import numpy as np
import matplotlib.pyplot as plt
xmin = 0
xmax = 700
ymin = -800
ymax = 0
zmin = -1000
zmax = 0
Y = np.loadtxt('data/pointsetX_1000.txt')
Y_hat = np.loadtxt('data/pointsetX_1000_pcd.txt')
New_Y = []
list = []
i = 0
for Y_new in Y:
if xmin <= Y_new[0] <= xmax and ymin <= Y_new[1] <= ymax and zmin <= Y_new[2] <= zmax:
New_Y.append(Y_new)
list.append(i)
i = i + 1
New_Y = np.array(New_Y)
list = np.array(list)
New_Y_hat = Y_hat[list]
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.autoscale(enable=True, axis='both', tight=None)
ax.set_box_aspect([1, 1, 1])
x = New_Y[:, 0]
y = New_Y[:, 1]
z = New_Y[:, 2]
ax.scatter(x, y, z, color='red', label='Target', marker='.')
ax.set_box_aspect([np.ptp(x), np.ptp(y), np.ptp(z)])
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()
np.savetxt('data/half_pointset.txt',New_Y)
np.savetxt('data/half_pointset_hat.txt',New_Y_hat)