999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于C++與PCL的LAS數據讀取及顯示

2017-09-15 02:57:43劉潔
城市道橋與防洪 2017年8期
關鍵詞:數據處理可視化

劉潔

(湖南省公路設計有限公司,湖南 長沙 410011)

基于C++與PCL的LAS數據讀取及顯示

劉潔

(湖南省公路設計有限公司,湖南 長沙 410011)

點云庫PCL(Point Cloud Library)是專門處理點云數據的公開庫,LAS則是機載激光雷達(Aiborne LiDAR)的數據格式,需專業軟件進行讀取。由于PCL無法直接讀取LAS數據,給基于PCL的點云數據處理帶來了不便。為此解析了LAS數據格式,在此基礎上使用C++編程讀取LAS數據并進行了可視化顯示。以某一區域LAS數據進行試驗,結果表明程序運行正常,這為后續基于PCL的點云數據處理提供了數據源。

C++;點云庫;機載激光雷達;可視化;格式

0 引言

機載激光雷達(Airborne LiDAR,ALiDAR)是一種通過發射器發射激光,激光接收器接收反射回的信號來測量地面數據的技術手段。由于其可快速、大面積、不受環境影響獲取測區數據的優勢,因而在測繪領域得到了廣泛應用[1,2]。機載激光雷達技術采集獲取的數據為LAS格式,需要專業軟件讀取點云數據。點云庫(Point Cloud Library,PCL)是專門用來處理點云數據的開源點云庫,其默認數據格式為PCD,無法直接讀取LAS數據[3,4]。若使用PCL來處理LAS數據,需將LAS數據轉換成PCD格式,才可進行后續數據處理。目前常見的有使用MATLAB語言、C++、C#等編程讀取LAS數據,但極少將其與PCL進行關聯[5~8]。

本文在分析LAS數據格式及PCD格式基礎上,在 Visual Studio 2013搭建好的平臺上使用C++編程讀取LAS數據,最后進行可視化顯示。以某一地區采集的數據進行數據讀取與可視化顯示試驗。試驗結果表明,本程序可以正確讀取LAS數據并進行顯示,這為后續基于PCL的點云數據處理提供了數據源。

1 LAS數據格式

完整的LAS數據文件包括三大部分,分別為公共頭文件、變長記錄和點記錄區[6]。LAS標準的數據格式經過若干次修改,目前已發布的版本有1.0、1.1、1.2、1.3、1.4等系,每一版本均包括上述三部分。下面以1.0版本的LAS數據格式進行講解。

1.1 公共頭文件

公共頭文件主要包括LAS數據的基本信息,如采集數據日期、儀器,點數等。表1所示為公共頭文件包含的幾項重要參數,以及每一項對應的類型。

表1 公共頭文件

在編程讀取數據過程中,要特別注意幾項參數。如主版本號與副版本號,其對應了LAS數據的版本號。文件頭長度,其表示公共頭文件所占的字節數,不同版本其所占字節數不一樣。如在1.0版本中,其長度為227。

在C++中可用read()函數按照字節進行讀取[9],如下面代碼所示:

ifstream infname(str,ios::binary|ios::in);

infname.read((char*)&public_header_block.file_ signature,sizeof(public_header_block.file_signature));

該段代碼是創建infname文件流對象,然后按字節數讀取LAS文件,并將讀取內容返回,如本文此次會返回文件標簽“LASF”。

按照上面的讀取方法,即可完成公共頭文件的讀取。

1.2 變長記錄和點記錄區

變長記錄主要包括用戶ID,記錄ID以及擴展域,而點數據記錄域主要記錄點的X、Y、Z坐標值及其他信息。表2為1.0版本的點數據記錄區。

表2 點記錄區域

其中X、Y、Z坐標需要按照公式(1)計算:

式中:Xcoordinate、Ycoordinate、Zcoordinate分別為點的地理坐標;Xrecord、Yrecord、Zrecord分別為點數據記錄區中記錄點坐標;Xscale、Yscale、Zscale分別為頭部文件 X、Y、Z的比例因子;Xoffset、Yoffset、Zoffset分別為X、Y、Z的偏移量。

在點記錄區域,可以根據點的個數,使用循環語句讀取點坐標,如下所示:

for(int i=0;i

{

infname.read((char*)&las3.x,sizeof(las3.x));

infname.read((char*)&las3.y,sizeof(las3.y));

infname.read((char*)&las3.z,sizeof(las3.z));

infname.read((char*)&tem,sizeof(tem));

outfname<

}

該段斷碼使用for循環語讀取每一點的X、Y、Z坐標,并將坐標值保存到文本中,這樣可以直接用文本查看數據。

2 PCD數據及點云可視化

點云庫PCL是包含點云數據處理中常見算法的公開庫源,但其默認的數據格式為PCD,因此需要將LAS中讀取的點坐標格式轉換成PCD格式,再進行數據處理。

2.1 PCD數據格式

PCD數據格式包括頭文件和點數據區域兩部分,其頭文件格式相對LAS要簡單。頭文件包括PCD數據版本,每個點的維度、類型及點的個數,獲取點的視點等信息。圖1為PCD 0.7版本數據頭文件格式,其中該數據文件包括656 487個點,每個點均包含X、Y、Z坐標。

圖1 PCD數據頭文件格式

2.2 點云可視化顯示

在PCL中,其可視化工具為VTK(Visualization Toolkit),在將LAS數據轉換成PCD格式文件后,即可以利用VTK顯示點云,實現可視化。其部分代碼如下[10]:

pcl::PointCloud

pcl::io::loadPCDFile(str,*cloud);

pcl::visualization::PCLVisualizer viewer("visualization");

viewer.setBackgroundColor(0,0,0);

pcl::visualization:PointCloudColorHandlerCustom< pcl::PointXYZ>single_color(cloud,0,255,0);

viewer.addPointCloud

該段代碼是創建點云對象指針cloud,再利用loadPCD函數將點云進行加載,同時創建可視化窗口viewer,并將可視化窗口背景顏色設置為黑色,點云顏色設置成綠色。

3 LAS數據讀取及顯示試驗

本文選取2016年期間采集的某一測區數據進行試驗,在Visual Studio 2013平臺上采用C++語言進行編寫,同時在工程中配置好PCL開發環境。其中保存在文本中點坐標部分數據如圖2所示,讀取LAS數據文件的部分頭文件信息如圖3所示。

圖2 數據讀取保存

圖3 頭文件部分信息

最后將采集的點數據進行可視化的點云結果如圖4所示,可以通過鼠標滾動、拖動,變換視角來瀏覽該區域數據。

圖4 LAS點云數據可視化

4 結語

本文主要介紹了LAS數據格式及PCD數據格式,并用C++編程進行讀取、轉換及可視化LAS數據。基于C++的LAS數據讀取,可以快速讀取轉換數據格式,為后面基于PCL的點云數據處理研究,以及基于LAS數據的應用提供可靠的數據來源,具有重要意義。

[1]駱云飛,王書民.機載LiDAR系統在道路勘測中的數據獲取及應用[J].測繪通報,2012(S1):362-364,371.

[2]范正岳,徐茂文.基于三維激光掃描的露天礦山儲量測量研究[J].礦山測量,2014(4):10-11.

[3]羅方燕.PCL庫點云統計去噪算法的應用研究[J].現代計算機(專業版),2016(26):63-66.

[4]南剛雷,張瑞峰,張梓然.基于PCL的柴油機缸蓋三維特征提取技術[J].電子測量技術,2016(2):80-82,98.

[5]任常青,張青萍,張曉宇.基于AutoCAD的LIDAR點云數據可視化[J].測繪技術裝備,2011,13(3):42-45.

[6]趙自明,史兵,田喜平,等.LAS格式解析及其數據的讀取與顯示[J].測繪技術裝備,2010,12(3):17-20.

[7]蘇偉戴,王森,李沁,等.基于OpenGL的LiDAR數據處理模塊設計與實現[J].中國農業大學學報,2012(2):150-158.

[8]聞兆海,謝忠.基于Matlab的LAS格式數據解析與顯示[J].地理空間信息,2015(1):50-52.

[9]譚浩強.C++程序設計[M].北京:清華大學出版社,2004:439-453.

[10]朱德海,郭浩,蘇偉.點云庫PCL學習教程[M].北京:北京航空航天大學出版社,2012:133-158.

TP751

A

1009-7716(2017)08-0272-03

10.16799/j.cnki.csdqyfh.2017.08.086

2017-04-01

劉潔(1969-),男,湖南長沙人,工程師,從事工程測量工作。

猜你喜歡
數據處理可視化
自然資源可視化決策系統
北京測繪(2022年6期)2022-08-01 09:19:06
認知診斷缺失數據處理方法的比較:零替換、多重插補與極大似然估計法*
心理學報(2022年4期)2022-04-12 07:38:02
思維可視化
師道·教研(2022年1期)2022-03-12 05:46:47
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
ILWT-EEMD數據處理的ELM滾動軸承故障診斷
水泵技術(2021年3期)2021-08-14 02:09:20
自然資源可視化決策系統
北京測繪(2021年7期)2021-07-28 07:01:18
基于CGAL和OpenGL的海底地形三維可視化
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
MATLAB在化學工程與工藝實驗數據處理中的應用
Matlab在密立根油滴實驗數據處理中的應用
主站蜘蛛池模板: 国产精品第一区| 欧美日本不卡| 有专无码视频| 99精品国产自在现线观看| 久久久国产精品无码专区| 亚洲成在人线av品善网好看| 久久美女精品国产精品亚洲| 亚洲大学生视频在线播放 | 精品久久香蕉国产线看观看gif| 九色视频一区| 草逼视频国产| 成人午夜网址| 亚洲男人天堂久久| 香蕉久人久人青草青草| 亚洲欧美另类视频| 久久精品国产精品国产一区| 久久午夜夜伦鲁鲁片无码免费| 国产精品香蕉| 国产成人精品免费视频大全五级| 国产丝袜无码精品| 99久久亚洲综合精品TS| 美女潮喷出白浆在线观看视频| 欧美国产日韩在线观看| 国产精品免费福利久久播放| 蜜桃臀无码内射一区二区三区 | 国产免费高清无需播放器| 精品无码一区二区三区在线视频| 欧美va亚洲va香蕉在线| 国产精品99在线观看| 欧美综合一区二区三区| 免费国产在线精品一区| 精品国产成人av免费| 亚洲无码不卡网| 国产高清毛片| 久99久热只有精品国产15| 久久久波多野结衣av一区二区| 一区二区三区国产精品视频| 国产人碰人摸人爱免费视频| 亚洲精品少妇熟女| 亚洲成a人片| 国产三级a| 国产小视频免费观看| 成人一级免费视频| 亚洲精品成人福利在线电影| 91亚洲免费视频| 婷婷六月综合网| 99在线视频免费| 国产自视频| 少妇精品网站| 成人年鲁鲁在线观看视频| 久久久久青草大香线综合精品| 国产精品无码一二三视频| 国产精品亚洲一区二区三区z| 综合成人国产| 黄色免费在线网址| 国产黄色片在线看| 97国产精品视频人人做人人爱| 国产精品偷伦在线观看| 2020极品精品国产| 91免费在线看| 亚洲天堂首页| 亚洲欧美日韩精品专区| 国产亚洲欧美另类一区二区| 成人日韩视频| 国产嫖妓91东北老熟女久久一| 国产精品亚洲欧美日韩久久| 91区国产福利在线观看午夜 | 亚洲欧美成人影院| 精品91在线| 国产精品香蕉在线| 日韩在线2020专区| 伊人久综合| 亚洲国产成人超福利久久精品| 四虎成人在线视频| 亚洲欧洲日产国码无码av喷潮| 亚洲一区二区成人| 久久精品aⅴ无码中文字幕| 成年av福利永久免费观看| AV网站中文| 国产色伊人| 91精品国产自产91精品资源| 亚洲黄网在线|