• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      散亂點(diǎn)云數(shù)據(jù)的可視化探究

      2013-12-31 00:00:00馬符訊林歡徐南
      科技創(chuàng)新導(dǎo)報(bào) 2013年10期

      摘 要:三維激光掃描儀獲取的散亂點(diǎn)云數(shù)據(jù)的可視化工作,是對(duì)點(diǎn)云數(shù)據(jù)進(jìn)行分析應(yīng)用的一個(gè)重要環(huán)節(jié)。該文從開發(fā)環(huán)境配置、點(diǎn)云數(shù)據(jù)輸入、點(diǎn)云數(shù)據(jù)顯示等方面詳細(xì)討論了可視化的實(shí)現(xiàn)細(xì)節(jié),利用VC6 + OpenGL實(shí)現(xiàn)了點(diǎn)云顯示、旋轉(zhuǎn)、平移、縮放、渲染等功能,為點(diǎn)云數(shù)據(jù)的后續(xù)處理提供了直觀的幫助。

      關(guān)鍵詞:三維激光掃描 點(diǎn)云數(shù)據(jù) 可視化 OpenGL

      中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2013)04(a)-00-02

      三維激光掃描技術(shù)是一種先進(jìn)的全自動(dòng)高精度立體掃描技術(shù),可以深入到復(fù)雜現(xiàn)場(chǎng)環(huán)境中采集大量的點(diǎn)云數(shù)據(jù),從而滿足精確建模的要求,并能利用采集的點(diǎn)云數(shù)據(jù)快速重建出原實(shí)體的三維模型,方便用戶從中提取三維點(diǎn)、線、面、體等各種數(shù)據(jù),廣泛應(yīng)用于逆向工程、測(cè)繪、虛擬仿真等不同領(lǐng)域。三維激光掃描技術(shù)因?yàn)槠浍@取速度快、精度高、實(shí)時(shí)性強(qiáng)、全數(shù)字化等特點(diǎn),并且能夠制作形式多樣的數(shù)字產(chǎn)品等突出優(yōu)勢(shì),近年來(lái)已逐漸成為各領(lǐng)域的研究熱點(diǎn)??梢哉f(shuō)三維激光掃描技術(shù)為我們提供了高科技的數(shù)據(jù)獲取工具,其廣闊的應(yīng)用前景需要科技工作者進(jìn)一步探索、發(fā)現(xiàn)。將三維激光掃描儀獲得的散亂點(diǎn)云數(shù)據(jù)進(jìn)行可視化,是對(duì)點(diǎn)云數(shù)據(jù)進(jìn)行分析應(yīng)用的一個(gè)重要環(huán)節(jié)。該文將從開發(fā)環(huán)境配置、點(diǎn)云數(shù)據(jù)輸入、點(diǎn)云數(shù)據(jù)顯示等方面詳細(xì)討論可視化的實(shí)現(xiàn)細(xì)節(jié)。

      1 開發(fā)環(huán)境配置

      該文以VC6為開發(fā)工具,但VC6并不能直接繪制并顯示三維坐標(biāo)點(diǎn),當(dāng)前常用的處理方法是借助OpenGL來(lái)實(shí)現(xiàn)三維點(diǎn)坐標(biāo)的繪制與顯示工作。為了能在計(jì)算機(jī)上順利地顯示出點(diǎn)云圖像,首先需要對(duì)VC6進(jìn)行OpenGL的安裝與配置。

      1.1 OpenGL介紹

      OpenGL是一個(gè)開放的三維圖形軟件包,獨(dú)立于窗口系統(tǒng)和操作系統(tǒng),以它為基礎(chǔ)開發(fā)的應(yīng)用程序可以方便地在各種平臺(tái)間移植。OpenGL可以與Visual C++緊密接口,可保證算法的正確性和可靠性。OpenGL使用簡(jiǎn)便,效率高,具有七大功能:提供基本的點(diǎn)、線、多邊形、復(fù)雜的三維物體(球、錐、多面體等)、復(fù)雜曲線和曲面建模功能;提供基本變換和投影變換功能;提供RGBA模式和顏色索引兩種顏色模式;具有光照和材質(zhì)設(shè)置功能;提供紋理映射功能;提供位圖顯示和圖像增強(qiáng)技術(shù);雙緩存動(dòng)畫技術(shù)。

      在三維散亂點(diǎn)云可視化過(guò)程中,首先會(huì)使用OpenGL進(jìn)行三維坐標(biāo)點(diǎn)顯示,其次會(huì)根據(jù)一定的算法提取點(diǎn)云的特征點(diǎn),利用點(diǎn)云三角格網(wǎng)化[1-3]等技術(shù)實(shí)現(xiàn)三維實(shí)體的重構(gòu)并借助OpenGL調(diào)整光照、增加紋理,以更加逼真地顯示三維實(shí)體。

      1.2 OpenGL庫(kù)配置文件

      用戶首先需要從OpenGL官方網(wǎng)站http://www.opengl.org下載OpenGL庫(kù)文件,下載完成后解壓得到文件包,OpenGL庫(kù)配置用到的文件分為三類:①頭文件:gl.h、glaux.h、glu.h、glut.h;②動(dòng)態(tài)鏈接庫(kù)文件:glaux.dll、glu32.dll、glut32.dll、opengl32.dll;③靜態(tài)庫(kù)文件:glaux.lib、glu32.lib、glut32.lib、opengl32.lib。

      1.3 Windows下配置OpenGL

      假設(shè)用戶計(jì)算機(jī)上操作系統(tǒng)(32位)安裝在C盤,VC 6安裝到C:/Program Files/Microsoft Visual Studio目錄下。將1.2中的頭文件,全部拷貝到C:/Program Files/Microsoft Visual Studio/VC98/Include/GL目錄下(如果沒有GL目錄的話,可自行創(chuàng)建);將1.2中的動(dòng)態(tài)鏈接庫(kù)文件,全部拷貝到C:/WINDOWS/system目錄下;將1.2中的靜態(tài)庫(kù)文件,全部拷貝到C:/Program Files/Microsoft Visual Studio/VC98/Lib目錄下。

      2 點(diǎn)云數(shù)據(jù)輸入

      該文點(diǎn)云數(shù)據(jù)由Trimble GX三維激光掃描儀掃描獲得,該掃描儀輸出數(shù)據(jù)源文件格式是pcf,不能直接使用記事本等工具打開。解決的辦法是先使用該三維激光掃描儀自帶的RealWorks軟件將該pcf格式文件轉(zhuǎn)換成asc/txt格式輸出。

      輸出時(shí)除了可以輸出坐標(biāo)信息XYZ(3個(gè)字段),還可以選擇輸出灰度值(1個(gè)字段)、RGB顏色(3個(gè)字段)和法線信息(3個(gè)字段)。

      假設(shè),僅輸出XYZ坐標(biāo)3個(gè)字段,輸出格式為asc??梢酝ㄟ^(guò)兩種方式讀入坐標(biāo)點(diǎn)信息:①利用MFC封裝的CStdioFile類ReadString方法先將數(shù)據(jù)按行讀入,再對(duì)每行字符串進(jìn)行解析,分離出每個(gè)點(diǎn)的X、Y、Z坐標(biāo)。②直接使用C語(yǔ)言提供的fscan函數(shù)將每行數(shù)據(jù)讀入對(duì)應(yīng)的字段。

      3 點(diǎn)云數(shù)據(jù)顯示

      首先創(chuàng)建一個(gè)基于單文檔的OpenGL應(yīng)用程序,并在頭文件中添加必要的OpenGL庫(kù)文件和消息響應(yīng)函數(shù),最后在源文件的相應(yīng)函數(shù)中添加代碼實(shí)現(xiàn)。殷福忠等[4-6]做了較為詳細(xì)的介紹,效果如圖1。

      圖1 石頭城點(diǎn)云圖像

      讀入點(diǎn)云數(shù)據(jù)并顯示之后,有時(shí)需要對(duì)點(diǎn)云圖像作進(jìn)一步處理,因此需要實(shí)現(xiàn)用戶對(duì)點(diǎn)云圖像的簡(jiǎn)單交互功能,比如點(diǎn)云圖像的旋轉(zhuǎn)、平移、縮放和渲染等功能。

      3.1 點(diǎn)云圖像旋轉(zhuǎn)

      點(diǎn)云的旋轉(zhuǎn)是為了實(shí)現(xiàn)用戶以不同的視角查看點(diǎn)云圖像。在OpenGL中一般通過(guò)glRotatef(GLdouble angle,GLdouble x,GLdouble y,GLdouble z)函數(shù)實(shí)現(xiàn)點(diǎn)云圖像的旋轉(zhuǎn),參數(shù)angle是旋轉(zhuǎn)的角度,(x,y,z)構(gòu)成了一個(gè)從OpenGL坐標(biāo)原點(diǎn)到(x,y,z)點(diǎn)的向量,是圖像旋轉(zhuǎn)時(shí)的旋轉(zhuǎn)軸,點(diǎn)云圖像旋轉(zhuǎn)的主要算法如下:

      Angle_X + =(point.y - m_LastMousePointDown.y)/ 3.6;

      Angle_Y + =(point.x - m_LastMousePointDown.x)/ 3.6;

      Angle_X、Angle_Y是點(diǎn)云圖像繞X、Y軸旋轉(zhuǎn)的角度;Point、m_LastMousePointDown分別為當(dāng)前鼠標(biāo)按下時(shí)的位置和上次鼠標(biāo)按下時(shí)的位置。效果如圖2。

      3.2 點(diǎn)云圖像平移

      點(diǎn)云的平移是為了方便了用戶查看點(diǎn)云圖像的不同部分。在OpenGL中一般通過(guò)glTranslatef(GLfloat x,GLfloat y,GLfloat z)函數(shù)實(shí)現(xiàn)點(diǎn)云圖像的平移,其中x、y、z分別表示沿x、y、z軸方向的平移長(zhǎng)度。

      3.3 點(diǎn)云圖像縮放

      點(diǎn)云的縮放是方便了用戶以不同的比例查看點(diǎn)云圖像。glScaled(GLdouble x,GLdouble y,GLdouble z),參數(shù)x、y、z分別指的是沿x、y、z軸的縮放因子。若x=y=z,此時(shí)圖像在xyz軸實(shí)現(xiàn)等比例縮放。為了保證圖像不失真,在實(shí)際操作中一般我們令x=y=z,以實(shí)現(xiàn)三個(gè)坐標(biāo)軸方向上等比例縮放,效果如圖3。

      圖2 點(diǎn)云圖像旋轉(zhuǎn)

      圖3 點(diǎn)云圖像縮放

      3.4 點(diǎn)云圖像渲染

      點(diǎn)云數(shù)據(jù)中除坐標(biāo)信息XYZ外,還包括顏色等其他信息,單純地根據(jù)坐標(biāo)信息有時(shí)難以識(shí)別地物,因此需要顏色信息輔助用戶判讀圖像中的地物或者通過(guò)把圖像渲染成特定的顏色來(lái)增加視覺效果以方便處理。glColor3f(GLfloat red,GLfloat green,GLfloat blue)函數(shù)提供了設(shè)置點(diǎn)云顏色的功能,參數(shù)red、green、blue分別代表顏色信息RGB的分量。值得注意的是,由于OpenGL中使用的是齊次坐標(biāo),因此如果參數(shù)red、green、blue的值大于1,要分別除以255。原始顏色渲染的圖像效果如圖4,自定義顏色渲染的圖像效果如圖5。

      圖4 點(diǎn)云圖像原始顏色渲染

      圖5 點(diǎn)云圖像自定義顏色渲染

      4 結(jié)語(yǔ)

      基于VC6開放的接口功能與OpenGL高效的圖形處理能力,該文將VC6與OpenGL緊密結(jié)合實(shí)現(xiàn)了對(duì)點(diǎn)云數(shù)據(jù)的顯示、縮放、平移、旋轉(zhuǎn)和渲染等可視化及簡(jiǎn)單的用戶操作功能。通過(guò)對(duì)實(shí)測(cè)點(diǎn)云數(shù)據(jù)可視化的測(cè)試,表明MFC單文檔和 OpenGL在點(diǎn)云可視化與編輯方面有著強(qiáng)大的功能,具有一定的研究?jī)r(jià)值和應(yīng)用

      價(jià)值。

      參考文獻(xiàn)

      [1]Kolluri R,Shewchuk J R,Obrien J F.Spectral surface reconstruction from noisy point clouds.[C]//Eurographics Symposium on Geometry Processing.2004.

      [2]Lee DT,Schachter BJ.Two algorithms for constructing a delaunay triangulation[J].International Journal of Computer and Information Sciences,1980,9(3).

      [3]Hoppe H,DeRose T,Duchamp T,et al.Surface reconstruction from unorganized points.Computer Graphics.1992.

      [4]殷福忠,曲鑫,曲林,等.基于MFC單文檔和OpenGL的激光掃描數(shù)據(jù)可視化與編輯的研究[J].測(cè)繪與空間地理信息,2009,32(6).

      [5]劉慧杰,靳海亮.基于VC++的OpenGL三維圖形開發(fā)設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程,2009(7).

      [6]和平鴿工作室編著.OpenGL三維圖形系統(tǒng)開發(fā)與實(shí)用技術(shù)[M].重慶大學(xué)出版社,2003.

      灌云县| 阳信县| 阜新| 凉山| 南漳县| 叶城县| 吴堡县| 灌南县| 穆棱市| 玉树县| 久治县| 靖边县| 常山县| 剑河县| 阿拉善左旗| 英德市| 衡水市| 罗甸县| 金塔县| 雷州市| 奈曼旗| 阳信县| 海南省| 建德市| 厦门市| 扬中市| 丹阳市| 门源| 大洼县| 新晃| 焉耆| 辽阳市| 西丰县| 三原县| 宁陵县| 偃师市| 西昌市| 梧州市| 汤原县| 永定县| 安达市|