?

基于Open CASCADE下的點云數據的研究與實現

2010-04-11 08:07吳維勇
制造業自動化 2010年13期
關鍵詞:應用程序可視化框架

丁 偉,馮 飛,吳維勇

DING Wei, FENG Fei, WU Wei-yong

(九江學院 信息科學與技術學院,九江 332005)

基于Open CASCADE下的點云數據的研究與實現

The research and realization of cloud data based on Open CASCAD

丁 偉,馮 飛,吳維勇

DING Wei, FENG Fei, WU Wei-yong

(九江學院 信息科學與技術學院,九江 332005)

研究了基于幾何內核Open CASCADE的三維建模平臺的研究,通過Open CASCADE類庫的建模、布爾操作、可視化系統的特性以及與Visual C++的有效結合,針對點云數據的加載進行圖形的空間變換,從而實現圖形的平移、縮放、旋轉。

Open CASCADE;空間變換;點云數據

0 引言

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

OpenCascade提供二維和三維幾何體的生成、顯示和分析。Open CASCADE的基礎類提供各種通用服務,如自動動態內存管理(操縱物體的處理)、收藏、例外處理、泛型的向下轉型和插件創造。Open CASCADE是面向對象的C++類庫,這些類庫被分成了六個類庫模塊(最小類庫模塊是基礎類庫模塊,最大的類庫模塊是建模運算類庫模塊),這些類庫模塊及其內容如下:

1)基礎類庫模塊(Foundation Classes):內核類(Kernel Classes),數學工具類(Math Utilities);

2)建模數據類模塊(Modeling Data):二維幾何體(2D Geometry),三維幾何體(3D Geometry),幾何體工具(Geometry Utilities),拓撲(Topology);

3)建模運算類模塊(Modeling Algorithms):基本體結構(Construction of Primitives),布爾操作(Boolean Operations),倒角圓角(Fillets and Chamfers),(Offsets,Drafts Sewing and Sweeps),特征(Features),消除隱藏線(Hidden Line Removal),幾何工具(Geometric Tools),拓撲工具(Topological Tools);

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

5)數據交換類模塊(Data Exchange):基本圖形轉換規范(IGES),產品型號數據交換標準(STEP),AP203,AP214,數據擴展(Extended data),exchange (XDE);

6)應用程序框架(Application Framework):數據框架(Data Framework),數據存儲(Data Storage),應用程序界面(Application Desktop)。

本文以點云數據的的加載為例,利用Open CASCADE強大的圖形處理功能以及Visual C++的良好數據處理能力,開發了實現行圖形的空間變換,從而實現圖形的平移、縮放、旋轉。

1 Open CASCADE應用程序框架

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

OCAF提供了應用程序結構,開發者的主要任務就是建立應用程序所需要的數據和程序接口。OCAF的應用程序數據組織方式和其他的CAD不同,在OCAF中,數據結構不是由形體驅動的,而是由參數驅動。

用戶通過Open CASCADE 提供的OCAF的生成向導可快速的在Visual C++中生成基于MFC的多文檔OCAF框架。生成向導的步驟如下:

1)Open CASCADE應用程序框架在Visual C++中的目錄選項卡中添加Open CASCADE下的inc及lib目錄;

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

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

2 點云數據的顯示

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

當節點向量區間分的很小的時候,簡捷顯示方法能夠達到較好的擬合效果。相關理論依據和證明如下:

由上可知,當節點向量區間分的很小的時候,簡捷顯示方法能夠達到較好的擬合效果。處理后的數據通過導入系統,可顯示效果。主要代碼如下:

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 點云數據的實現

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

3.1 點云數據的空間變換

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

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

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

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

Open CASCADE在View類中(V3d_VIew)中有相應的轉換函數,可以把當前點轉換到3D視圖中的對應與重合與屏幕平面上。

在實現的系統中可通過Ctrl+鼠標中間按鍵(或鼠標中間的小圓球)可實現圖形的平移、Ctrl+鼠標左按鍵可實現圖形的縮放、Ctrl+鼠標右按鍵可實現圖形的旋轉。

3.2 點云數據的刪除與更新

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

3.3 程序運行界面及效果圖

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

圖1 牛點云顯示效果

圖2 兔子點云顯示效果

4 結束語

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

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

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

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

TP241

A

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

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

2010-09-13

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

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

猜你喜歡
應用程序可視化框架
基于CiteSpace的足三里穴研究可視化分析
有機框架材料的后合成交換
思維可視化
框架
K-框架和緊K-框架的算子擾動的穩定性
基于CGAL和OpenGL的海底地形三維可視化
刪除Win10中自帶的應用程序
“融評”:黨媒評論的可視化創新
谷歌禁止加密貨幣應用程序
關于原點對稱的不規則Gabor框架的構造
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合