亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于C++與PCL的LAS數(shù)據(jù)讀取及顯示

        2017-09-15 02:57:43劉潔
        城市道橋與防洪 2017年8期
        關(guān)鍵詞:數(shù)據(jù)格式數(shù)據(jù)處理可視化

        劉潔

        (湖南省公路設(shè)計(jì)有限公司,湖南 長(zhǎng)沙 410011)

        基于C++與PCL的LAS數(shù)據(jù)讀取及顯示

        劉潔

        (湖南省公路設(shè)計(jì)有限公司,湖南 長(zhǎng)沙 410011)

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

        C++;點(diǎn)云庫;機(jī)載激光雷達(dá);可視化;格式

        0 引言

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

        本文在分析LAS數(shù)據(jù)格式及PCD格式基礎(chǔ)上,在 Visual Studio 2013搭建好的平臺(tái)上使用C++編程讀取LAS數(shù)據(jù),最后進(jìn)行可視化顯示。以某一地區(qū)采集的數(shù)據(jù)進(jìn)行數(shù)據(jù)讀取與可視化顯示試驗(yàn)。試驗(yàn)結(jié)果表明,本程序可以正確讀取LAS數(shù)據(jù)并進(jìn)行顯示,這為后續(xù)基于PCL的點(diǎn)云數(shù)據(jù)處理提供了數(shù)據(jù)源。

        1 LAS數(shù)據(jù)格式

        完整的LAS數(shù)據(jù)文件包括三大部分,分別為公共頭文件、變長(zhǎng)記錄和點(diǎn)記錄區(qū)[6]。LAS標(biāo)準(zhǔn)的數(shù)據(jù)格式經(jīng)過若干次修改,目前已發(fā)布的版本有1.0、1.1、1.2、1.3、1.4等系,每一版本均包括上述三部分。下面以1.0版本的LAS數(shù)據(jù)格式進(jìn)行講解。

        1.1 公共頭文件

        公共頭文件主要包括LAS數(shù)據(jù)的基本信息,如采集數(shù)據(jù)日期、儀器,點(diǎn)數(shù)等。表1所示為公共頭文件包含的幾項(xiàng)重要參數(shù),以及每一項(xiàng)對(duì)應(yīng)的類型。

        表1 公共頭文件

        在編程讀取數(shù)據(jù)過程中,要特別注意幾項(xiàng)參數(shù)。如主版本號(hào)與副版本號(hào),其對(duì)應(yīng)了LAS數(shù)據(jù)的版本號(hào)。文件頭長(zhǎng)度,其表示公共頭文件所占的字節(jié)數(shù),不同版本其所占字節(jié)數(shù)不一樣。如在1.0版本中,其長(zhǎng)度為227。

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

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

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

        該段代碼是創(chuàng)建infname文件流對(duì)象,然后按字節(jié)數(shù)讀取LAS文件,并將讀取內(nèi)容返回,如本文此次會(huì)返回文件標(biāo)簽“LASF”。

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

        1.2 變長(zhǎng)記錄和點(diǎn)記錄區(qū)

        變長(zhǎng)記錄主要包括用戶ID,記錄ID以及擴(kuò)展域,而點(diǎn)數(shù)據(jù)記錄域主要記錄點(diǎn)的X、Y、Z坐標(biāo)值及其他信息。表2為1.0版本的點(diǎn)數(shù)據(jù)記錄區(qū)。

        表2 點(diǎn)記錄區(qū)域

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

        式中:Xcoordinate、Ycoordinate、Zcoordinate分別為點(diǎn)的地理坐標(biāo);Xrecord、Yrecord、Zrecord分別為點(diǎn)數(shù)據(jù)記錄區(qū)中記錄點(diǎn)坐標(biāo);Xscale、Yscale、Zscale分別為頭部文件 X、Y、Z的比例因子;Xoffset、Yoffset、Zoffset分別為X、Y、Z的偏移量。

        在點(diǎn)記錄區(qū)域,可以根據(jù)點(diǎn)的個(gè)數(shù),使用循環(huán)語句讀取點(diǎn)坐標(biāo),如下所示:

        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循環(huán)語讀取每一點(diǎn)的X、Y、Z坐標(biāo),并將坐標(biāo)值保存到文本中,這樣可以直接用文本查看數(shù)據(jù)。

        2 PCD數(shù)據(jù)及點(diǎn)云可視化

        點(diǎn)云庫PCL是包含點(diǎn)云數(shù)據(jù)處理中常見算法的公開庫源,但其默認(rèn)的數(shù)據(jù)格式為PCD,因此需要將LAS中讀取的點(diǎn)坐標(biāo)格式轉(zhuǎn)換成PCD格式,再進(jìn)行數(shù)據(jù)處理。

        2.1 PCD數(shù)據(jù)格式

        PCD數(shù)據(jù)格式包括頭文件和點(diǎn)數(shù)據(jù)區(qū)域兩部分,其頭文件格式相對(duì)LAS要簡(jiǎn)單。頭文件包括PCD數(shù)據(jù)版本,每個(gè)點(diǎn)的維度、類型及點(diǎn)的個(gè)數(shù),獲取點(diǎn)的視點(diǎn)等信息。圖1為PCD 0.7版本數(shù)據(jù)頭文件格式,其中該數(shù)據(jù)文件包括656 487個(gè)點(diǎn),每個(gè)點(diǎn)均包含X、Y、Z坐標(biāo)。

        圖1 PCD數(shù)據(jù)頭文件格式

        2.2 點(diǎn)云可視化顯示

        在PCL中,其可視化工具為VTK(Visualization Toolkit),在將LAS數(shù)據(jù)轉(zhuǎn)換成PCD格式文件后,即可以利用VTK顯示點(diǎn)云,實(shí)現(xiàn)可視化。其部分代碼如下[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

        該段代碼是創(chuàng)建點(diǎn)云對(duì)象指針cloud,再利用loadPCD函數(shù)將點(diǎn)云進(jìn)行加載,同時(shí)創(chuàng)建可視化窗口viewer,并將可視化窗口背景顏色設(shè)置為黑色,點(diǎn)云顏色設(shè)置成綠色。

        3 LAS數(shù)據(jù)讀取及顯示試驗(yàn)

        本文選取2016年期間采集的某一測(cè)區(qū)數(shù)據(jù)進(jìn)行試驗(yàn),在Visual Studio 2013平臺(tái)上采用C++語言進(jìn)行編寫,同時(shí)在工程中配置好PCL開發(fā)環(huán)境。其中保存在文本中點(diǎn)坐標(biāo)部分?jǐn)?shù)據(jù)如圖2所示,讀取LAS數(shù)據(jù)文件的部分頭文件信息如圖3所示。

        圖2 數(shù)據(jù)讀取保存

        圖3 頭文件部分信息

        最后將采集的點(diǎn)數(shù)據(jù)進(jìn)行可視化的點(diǎn)云結(jié)果如圖4所示,可以通過鼠標(biāo)滾動(dòng)、拖動(dòng),變換視角來瀏覽該區(qū)域數(shù)據(jù)。

        圖4 LAS點(diǎn)云數(shù)據(jù)可視化

        4 結(jié)語

        本文主要介紹了LAS數(shù)據(jù)格式及PCD數(shù)據(jù)格式,并用C++編程進(jìn)行讀取、轉(zhuǎn)換及可視化LAS數(shù)據(jù)?;贑++的LAS數(shù)據(jù)讀取,可以快速讀取轉(zhuǎn)換數(shù)據(jù)格式,為后面基于PCL的點(diǎn)云數(shù)據(jù)處理研究,以及基于LAS數(shù)據(jù)的應(yīng)用提供可靠的數(shù)據(jù)來源,具有重要意義。

        [1]駱云飛,王書民.機(jī)載LiDAR系統(tǒng)在道路勘測(cè)中的數(shù)據(jù)獲取及應(yīng)用[J].測(cè)繪通報(bào),2012(S1):362-364,371.

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

        [3]羅方燕.PCL庫點(diǎn)云統(tǒng)計(jì)去噪算法的應(yīng)用研究[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2016(26):63-66.

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

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

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

        [7]蘇偉戴,王森,李沁,等.基于OpenGL的LiDAR數(shù)據(jù)處理模塊設(shè)計(jì)與實(shí)現(xiàn)[J].中國農(nóng)業(yè)大學(xué)學(xué)報(bào),2012(2):150-158.

        [8]聞?wù)缀#x忠.基于Matlab的LAS格式數(shù)據(jù)解析與顯示[J].地理空間信息,2015(1):50-52.

        [9]譚浩強(qiáng).C++程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2004:439-453.

        [10]朱德海,郭浩,蘇偉.點(diǎn)云庫PCL學(xué)習(xí)教程[M].北京:北京航空航天大學(xué)出版社,2012:133-158.

        TP751

        A

        1009-7716(2017)08-0272-03

        10.16799/j.cnki.csdqyfh.2017.08.086

        2017-04-01

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

        猜你喜歡
        數(shù)據(jù)格式數(shù)據(jù)處理可視化
        基于CiteSpace的足三里穴研究可視化分析
        認(rèn)知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補(bǔ)與極大似然估計(jì)法*
        基于Power BI的油田注水運(yùn)行動(dòng)態(tài)分析與可視化展示
        云南化工(2021年8期)2021-12-21 06:37:54
        ILWT-EEMD數(shù)據(jù)處理的ELM滾動(dòng)軸承故障診斷
        基于CGAL和OpenGL的海底地形三維可視化
        “融評(píng)”:黨媒評(píng)論的可視化創(chuàng)新
        在智能交通系統(tǒng)中PLC數(shù)據(jù)格式轉(zhuǎn)換方法的研究
        基于希爾伯特- 黃變換的去噪法在外測(cè)數(shù)據(jù)處理中的應(yīng)用
        論子函數(shù)在C語言數(shù)據(jù)格式輸出中的應(yīng)用
        DWG與SHP數(shù)據(jù)格式互轉(zhuǎn)換方法研究——以龍巖規(guī)劃測(cè)繪數(shù)據(jù)為例
        一本大道熟女人妻中文字幕在线| 日韩av最新在线地址| 人人色在线视频播放| 国产一级一区二区三区在线播放| 亚州AV成人无码久久精品| 国产伦精品一区二区三区妓女 | 久热国产vs视频在线观看| 男女打扑克视频在线看| 欧美成人免费看片一区| 免费看美女被靠的网站| 久久综合九色综合97婷婷| 亚洲女同系列高清在线观看| 亚洲处破女av日韩精品| 精品国产av一区二区三区四区| 成人免费毛片在线播放| 日本污视频| 国产精品久久777777| 精品久久久少妇一区二区| 久久一二三四区中文字幕| av无码精品一区二区三区四区| 成人欧美一区二区三区在线观看 | 国产偷国产偷亚洲清高| 乱中年女人伦av三区| 在教室轮流澡到高潮h免费视| 日韩精品中文字幕人妻系列| 丝袜足控一区二区三区| 成年女人粗暴毛片免费观看 | 日韩中文字幕熟女人妻| www.91久久| 国产一卡2卡3卡四卡国色天香| 国产日产亚洲系列最新| 日本一区二区三级在线| 精品久久久久中文字幕APP| 国产做a爱片久久毛片a片| 亚洲最新无码中文字幕久久| 国产三级国产精品国产专区| 丰满熟妇乱又伦| 亚洲精品白浆高清久久久久久| 中文字幕精品一区久久| 91九色视频在线国产| 国产精品一区二区三区三|