溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HDF5格式點云的三種可視化方法

發(fā)布時間:2021-09-18 10:05:28 來源:億速云 閱讀:876 作者:柒染 欄目:編程語言

今天就跟大家聊聊有關HDF5格式點云的三種可視化方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

1 點云介紹

點云數據是來自斯坦福大學的 HDF5 格式數據。HDF5 格式是用于存儲和分發(fā)科學數據的一種多對象文件格式??梢杂?HDFView 打開文件,查看數據。

1
www = 'https://shapenet.cs.stanford.edu/media/modelnet40_ply_hdf5_2048.zip

點云還有 PLY 格式:PLY 文件格式是 Stanford 大學開發(fā)的一套三維 mesh 模型數據格式,圖形學領域最初很多模型都是基于此格式,我使用了此格式的點云物體文件進行了部分物體的參考和對比。

點云還有 PCD 格式:一種新的 3D 點云數據文件格式,是當初為了解決某些不支持 PCL 為 3D 點云處理進行的文件擴展。他的文件頭部具有固定格式,必須用 ASCII 編碼,包含標題、對點云數據的某些屬性的聲明。PCD 文件可以使用 PCL 庫里的 PCL_Viewer 打開,從而直接查看到點云的三維圖像。

MAC 上的 PCL_Viewer 需要裝 PCL 庫,當時配置的一些問題記錄在博客里了。PCL 在 Mac 上環(huán)境問題

2 可視化方法

2.1 Matplotlib 方法
1
2
3
4
5
6
7
8
9
10
11
12
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# point_range = range(0, points.shape[0], skip) # skip points to prevent crash
point_range = range(0, points.shape[0])
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()

效果如下:

HDF5格式點云的三種可視化方法

2.2 PCD 格式轉化用 PCL_Viewer 可視化

對 HDF5 格式的數據進行了重寫為 PCD 文件格式,主要 就是將數據寫入的時候需要滿足 PCD 文件頂頭部分的特定格式。PCL_viewer 是可視化點云文件的 PCL 工具,它需要用到 PCL 庫里的 vtk 庫進 行可視化。

詳情見我的 github 項目里 點云分類 的 H5toPcd.py。

2.3 Three.js 網頁可視化

首先構建一個場景,遍歷添加 3D 點云的所有 點到場景里,并給點賦值顏色 RGB 值和材質,其實場景就是物體的一個容器。然后設置好相機,相機的角度決定了場景中某一角度的 3D 點云物體的圖像。相機對 旋轉的點云拍照,從而渲染顯示在頁面上即可看到可視化的點云物體了。最后設置 好渲染器。使用渲染器的 render (scene, camera) 函數,設置渲染器的像素和頁面元 素大小,渲染器將相機拍到的圖形渲染顯示在頁面的元素內,從而在頁面中可以看到圖像。

詳情見 github 項目 點云分類網頁展示 的 draw2.html

HDF5格式點云的三種可視化方法

看完上述內容,你們對HDF5格式點云的三種可視化方法有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI