• 
    

    
    

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

      ?

      基于Open CASCADE下的點云數(shù)據(jù)的研究與實現(xiàn)

      2010-04-11 08:07:44吳維勇
      制造業(yè)自動化 2010年13期
      關(guān)鍵詞:類庫應(yīng)用程序可視化

      丁 偉,馮 飛,吳維勇

      DING Wei, FENG Fei, WU Wei-yong

      (九江學(xué)院 信息科學(xué)與技術(shù)學(xué)院,九江 332005)

      基于Open CASCADE下的點云數(shù)據(jù)的研究與實現(xiàn)

      The research and realization of cloud data based on Open CASCAD

      丁 偉,馮 飛,吳維勇

      DING Wei, FENG Fei, WU Wei-yong

      (九江學(xué)院 信息科學(xué)與技術(shù)學(xué)院,九江 332005)

      研究了基于幾何內(nèi)核Open CASCADE的三維建模平臺的研究,通過Open CASCADE類庫的建模、布爾操作、可視化系統(tǒng)的特性以及與Visual C++的有效結(jié)合,針對點云數(shù)據(jù)的加載進(jìn)行圖形的空間變換,從而實現(xiàn)圖形的平移、縮放、旋轉(zhuǎn)。

      Open CASCADE;空間變換;點云數(shù)據(jù)

      0 引言

      Open CASCADE是一套開放原始碼的CAD/CAM/CAE幾何模型核心,源自于法國的Matra Datavision公司,Open CASCADE是一個功能強(qiáng)大的三維建模工具,提供了點、線、面、體和復(fù)雜形體的顯示和交互操作,經(jīng)過深度開發(fā)后可實現(xiàn)紋理、光照、圖元填充、渲染等圖形操作和放大、縮小、旋轉(zhuǎn)、漫游、模擬飛行、模擬穿越等動態(tài)操作。

      OpenCascade提供二維和三維幾何體的生成、顯示和分析。Open CASCADE的基礎(chǔ)類提供各種通用服務(wù),如自動動態(tài)內(nèi)存管理(操縱物體的處理)、收藏、例外處理、泛型的向下轉(zhuǎn)型和插件創(chuàng)造。Open CASCADE是面向?qū)ο蟮腃++類庫,這些類庫被分成了六個類庫模塊(最小類庫模塊是基礎(chǔ)類庫模塊,最大的類庫模塊是建模運(yùn)算類庫模塊),這些類庫模塊及其內(nèi)容如下:

      1)基礎(chǔ)類庫模塊(Foundation Classes):內(nèi)核類(Kernel Classes),數(shù)學(xué)工具類(Math Utilities);

      2)建模數(shù)據(jù)類模塊(Modeling Data):二維幾何體(2D Geometry),三維幾何體(3D Geometry),幾何體工具(Geometry Utilities),拓?fù)洌═opology);

      3)建模運(yùn)算類模塊(Modeling Algorithms):基本體結(jié)構(gòu)(Construction of Primitives),布爾操作(Boolean Operations),倒角圓角(Fillets and Chamfers),(Offsets,Drafts Sewing and Sweeps),特征(Features),消除隱藏線(Hidden Line Removal),幾何工具(Geometric Tools),拓?fù)涔ぞ撸═opological Tools);

      4)可視化類模塊(Visualization):二維三維通用服務(wù)(Services Common to 2D and 3D),二維可視化類(2D Visualization),三維可視化類(3D Visualization);

      5)數(shù)據(jù)交換類模塊(Data Exchange):基本圖形轉(zhuǎn)換規(guī)范(IGES),產(chǎn)品型號數(shù)據(jù)交換標(biāo)準(zhǔn)(STEP),AP203,AP214,數(shù)據(jù)擴(kuò)展(Extended data),exchange (XDE);

      6)應(yīng)用程序框架(Application Framework):數(shù)據(jù)框架(Data Framework),數(shù)據(jù)存儲(Data Storage),應(yīng)用程序界面(Application Desktop)。

      本文以點云數(shù)據(jù)的的加載為例,利用Open CASCADE強(qiáng)大的圖形處理功能以及Visual C++的良好數(shù)據(jù)處理能力,開發(fā)了實現(xiàn)行圖形的空間變換,從而實現(xiàn)圖形的平移、縮放、旋轉(zhuǎn)。

      1 Open CASCADE應(yīng)用程序框架

      Open CASCADE提供了一個應(yīng)用程序開發(fā)的框架OCAF(Open CASCADE Application Frame),可幫助開發(fā)人員快速的利用Open CASCADE進(jìn)行應(yīng)用程序的開發(fā)。

      OCAF提供了應(yīng)用程序結(jié)構(gòu),開發(fā)者的主要任務(wù)就是建立應(yīng)用程序所需要的數(shù)據(jù)和程序接口。OCAF的應(yīng)用程序數(shù)據(jù)組織方式和其他的CAD不同,在OCAF中,數(shù)據(jù)結(jié)構(gòu)不是由形體驅(qū)動的,而是由參數(shù)驅(qū)動。

      用戶通過Open CASCADE 提供的OCAF的生成向?qū)Э煽焖俚脑赩isual C++中生成基于MFC的多文檔OCAF框架。生成向?qū)У牟襟E如下:

      1)Open CASCADE應(yīng)用程序框架在Visual C++中的目錄選項卡中添加Open CASCADE下的inc及l(fā)ib目錄;

      2)將Open CASCADE下的acafappwizard.awx及usertype.dat復(fù)制到Visual C++下的Template及Bin文件夾下;

      3)在Visual C++中的Option對話框format選項卡中進(jìn)行字體格式設(shè)置,在Color項目區(qū)選擇User Defined Keywords。

      2 點云數(shù)據(jù)的顯示

      本文主要針對規(guī)則的兔子點云和牛點云數(shù)據(jù)進(jìn)行處理,其數(shù)據(jù)采樣方法為按行掃描。由于得到的物體的點云數(shù)據(jù)通常是海量的,而且有的物體表面曲率變化較大,形狀不規(guī)則,所以在做一片點云數(shù)據(jù)曲面顯示的時候,如果點取的太稀疏,不能反映局部曲面曲率變化的大小,如果點取的太密集,那么將給曲面擬合帶來很大的計算量。因此,將一片點云數(shù)據(jù)分割成若干小片,對每個小片分別進(jìn)行擬合顯示,最后把所有小片進(jìn)行光滑拼接,以達(dá)到良好的顯示效果。

      當(dāng)節(jié)點向量區(qū)間分的很小的時候,簡捷顯示方法能夠達(dá)到較好的擬合效果。相關(guān)理論依據(jù)和證明如下:

      由上可知,當(dāng)節(jié)點向量區(qū)間分的很小的時候,簡捷顯示方法能夠達(dá)到較好的擬合效果。處理后的數(shù)據(jù)通過導(dǎo)入系統(tǒng),可顯示效果。主要代碼如下:

      Handle(Prs3d_Point Aspect) aPointAspect=new

      Prs3d_PointAspect(Aspect_TOM_POINT,Quantity_Color(1,0,0,Quantity_TOC_RGB),2);

      Handle(AIS_Drawer) anDrawer=new AIS_Drawer;

      anDrawer->SetPointAspect(aPointAspect);

      anAISCompound->SetAttributes(anDrawer);

      3 點云數(shù)據(jù)的實現(xiàn)

      通過數(shù)據(jù)處理后,其中牛點云數(shù)據(jù)中有2904個頂點及5848個面,兔子點云數(shù)據(jù)中有53921個頂點及104167個面。

      3.1 點云數(shù)據(jù)的空間變換

      空間變換,也稱幾何變換或幾何運(yùn)算, 包括圖形的平移、縮放、旋轉(zhuǎn)等.幾何運(yùn)算可改變圖形中各物體之間的空間關(guān)系,這種運(yùn)算可以被看成是將物體在圖形內(nèi)移動。

      空間變換可如下表示.設(shè)(u,v)為源圖形上的點,(x, y)為目標(biāo)圖形上的點,則幾何變換將源圖形上(u,v)處的顏色值與目標(biāo)圖形上(x, y)處的顏色值對應(yīng)起來(u,v) <—> (x,y)并具有以下關(guān)系:

      其中X(u,v)、 Y(u,v)或U(x,y)、 V(x,y)均為變換.由(1)對應(yīng)的變換稱作向前映射法,而由(2) 對應(yīng)的變換稱作向后映射法[3]。

      一個空間變換需要兩個獨(dú)立的算法。首先,需要一個算法來定義幾何變換本身, 用來描述每個像素如何從其初始位置“移動”到終止位置,即每個像素的運(yùn)動。同時,還需要一個用于灰度插值的算法。

      Open CASCADE在View類中(V3d_VIew)中有相應(yīng)的轉(zhuǎn)換函數(shù),可以把當(dāng)前點轉(zhuǎn)換到3D視圖中的對應(yīng)與重合與屏幕平面上。

      在實現(xiàn)的系統(tǒng)中可通過Ctrl+鼠標(biāo)中間按鍵(或鼠標(biāo)中間的小圓球)可實現(xiàn)圖形的平移、Ctrl+鼠標(biāo)左按鍵可實現(xiàn)圖形的縮放、Ctrl+鼠標(biāo)右按鍵可實現(xiàn)圖形的旋轉(zhuǎn)。

      3.2 點云數(shù)據(jù)的刪除與更新

      點云數(shù)據(jù)的刪除與更新是前期數(shù)據(jù)處理的核心。因為無論哪種激光掃描系統(tǒng)得到的數(shù)據(jù)都含有大量的冗余信息,對所有點云數(shù)據(jù)進(jìn)行可視化,并選擇刪除那些明顯是多余信息的數(shù)據(jù),既直觀也給后續(xù)處理減少了工作量,最重要的是可以減小后續(xù)處理出錯的可能性。代碼如下:

      3.3 程序運(yùn)行界面及效果圖

      程序主界面包括幾個區(qū)域:菜單欄,圖形工具欄,主顯示區(qū),三視圖顯示區(qū),建??刂茀^(qū)。數(shù)據(jù)加載后顯示效果圖如圖1、圖2所示。在圖中可執(zhí)行相關(guān)操作。

      圖1 牛點云顯示效果

      圖2 兔子點云顯示效果

      4 結(jié)束語

      在本文中,我們給出了一種簡單實用的點云數(shù)據(jù)的前期可視化操作與管理的方法。針對初始的僅具有的三維空間坐標(biāo)的點云數(shù)據(jù),實現(xiàn)了模型的空間變換操作,并支持點云的動態(tài)刪除與更新。采用了 Open CASCADE幾何內(nèi)核,由OpenCASCADE提供的數(shù)據(jù)管理模塊實現(xiàn)了復(fù)雜的數(shù)據(jù)管理功能。為圖形中的數(shù)據(jù)點云操作提供了廣闊的應(yīng)用前景。

      [1] 0bject libraries application framework uses guide[EB/OL].WWW.0penCASCAD E-org.2006.

      [2] 施法中.計算機(jī)輔助幾何設(shè)計與非均勻有理B樣條[M].北京:北京航空航天大學(xué)出版社,1994:17-25.

      [3] 崔錦泰,程正興.小波分析導(dǎo)引[M].西安交通大學(xué)出版社,1995:102-105.

      TP241

      A

      1009-0134(2010)11(下)-0216-03

      10.3969/j.issn.1009-0134.2010.11(下).73

      2010-09-13

      國家自然基金資助項目(60863012);江西省自然科學(xué)基金資助項目(0611063);江西省教育廳科技項目(GJJ08435,GJJ09346)

      丁偉(1978 -),講師,碩士,研究方向為圖形圖像處理及數(shù)據(jù)庫。

      猜你喜歡
      類庫應(yīng)用程序可視化
      基于CiteSpace的足三里穴研究可視化分析
      基于Power BI的油田注水運(yùn)行動態(tài)分析與可視化展示
      云南化工(2021年8期)2021-12-21 06:37:54
      基于CGAL和OpenGL的海底地形三維可視化
      用Java編寫客戶機(jī)/服務(wù)器端應(yīng)用程序
      刪除Win10中自帶的應(yīng)用程序
      電腦報(2019年12期)2019-09-10 05:08:20
      “融評”:黨媒評論的可視化創(chuàng)新
      傳媒評論(2019年4期)2019-07-13 05:49:14
      Python在數(shù)據(jù)可視化中的應(yīng)用
      數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革方案和應(yīng)用效果
      軟件工程(2017年12期)2018-01-29 17:35:55
      數(shù)據(jù)結(jié)構(gòu)可視化類庫的設(shè)計與實現(xiàn)
      關(guān)閉應(yīng)用程序更新提醒
      電腦迷(2012年15期)2012-04-29 17:09:47
      万州区| 绥德县| 汾阳市| 三穗县| 繁昌县| 巩义市| 苍山县| 琼结县| 黄石市| 城市| 衡阳市| 西乌珠穆沁旗| 瑞昌市| 景洪市| 班玛县| 陆丰市| 辉南县| 精河县| 张家口市| 嵊州市| 南京市| 丹阳市| 色达县| 简阳市| 双牌县| 资源县| 探索| 师宗县| 浦北县| 龙口市| 科技| 绥德县| 启东市| 东方市| 通江县| 清河县| 通州市| 股票| 巴彦县| 兴业县| 甘泉县|