本課程正在構建中,但將要教授的視圖類型如下所示。
同時請參閱此博客文章和此博客文章,瞭解本課程中將包含的大部分內容。
使用Mayavi進行交互式3D可視化——Interactive 3D Visualization using Mayavi
關於
Mayavi是一個科學的可視化庫,能夠可視化點雲數據。
獲得Mayavi
正在建設....同時,如果您使用的是Ubuntu,可以查看這個要點,以便在機器上進行設置。
TLDR; mayavi是安裝非常痛苦。
可視化
正在建設....同時我已經將這個以下功能放在一起以可視化點雲數據。 稍後將更詳細地解釋這一點。
# ==============================================================================
# VIZ_MAYAVI
# ==============================================================================
def viz_mayavi(points, vals="distance"):
x = points[:, 0] # x position of point
y = points[:, 1] # y position of point
z = points[:, 2] # z position of point
# r = lidar[:, 3] # reflectance value of point
d = np.sqrt(x ** 2 + y ** 2) # Map Distance from sensor
# Plot using mayavi -Much faster and smoother than matplotlib
import mayavi.mlab
if vals == "height":
col = z
else:
col = d
fig = mayavi.mlab.figure(bgcolor=(0, 0, 0), size=(640, 360))
mayavi.mlab.points3d(x, y, z,
col, # Values used for Color
mode="point",
colormap='spectral', # 'bone', 'copper', 'gnuplot'
# color=(0, 1, 0), # Used a fixed (r,g,b) instead
figure=fig,
)
mayavi.mlab.show()
使用Matplotlib進行交互式3D可視化——Interactive 3D Visualization using Matplotlib
注意:本課程仍在建設中......
介紹
Matplotlib具有易於設置的優點。幾乎所有從事機器學習或數據科學工作的人都已經安裝了這個。但是,有幾個原因可以避免使用它在3D中以交互方式顯示點雲。
首先matplotlib非常慢。如果您想要實際可視化LIDAR掃描之類的所有點,它可能會使您的計算機崩潰。
其次,它只是沒有產生非常好的點雲可視化。例如,如果您正在處理LIDAR點雲,則在使用matplotlib時,您不太可能識別場景中的任何內容。
Mayavi的缺點是安裝起來非常棘手,但在可視化點雲數據方面做得非常出色。如果可以的話,我會鼓勵你嘗試。
可視化。
注意:本課程仍在建設中......
爲了防止matplotlib崩潰您的計算機,建議僅查看點雲數據的子集。例如,如果您可視化LIDAR數據,那麼您可能只想查看每25-100個點中的一個。下面是一些示例代碼,可幫助您入門。
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
skip = 100 # 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
ax.scatter(points[point_range, 0], # x
points[point_range, 1], # y
points[point_range, 2], # z
c=points[point_range, 2], # height data for color
cmap='spectral',
marker="x")
ax.axis('scaled') # {equal, scaled}
plt.show()