目錄
視算團隊在這幾年間,透過規劃與開發泛用程式庫作為技術的核心,然後根據專案與研究的需求,逐步將程式庫的各個模組與演算法完成,透過這樣的方式在研發方面可將重心放在演算法的開發,而針對計畫與專案的需求則是使用程式庫包裝成應用程式來作為產出。如此一來,透過程式庫的彈性擴充與重覆使用可以嘗試在不同的計畫中執行,而透過執行一個個的計畫與研究也可讓程式庫的內容與功能越來越強大與完整。
目前我們的程式庫包含了兩個方面,3D VR Engine 與 IMT。3D VR Engine 主要是針對資料的 3D 顯示所使用的程式庫,而 IMT 則是針對影像處理的程式庫。詳細介紹如下:
3D VR Engine
簡介
近年來,隨著觀測技術與電腦計算能力的提升,產生了大量的資料與數據。為了將龐大的資料抽象化與概念化為人類易於辨識的型態,視覺化的技術成為越來越重要的一環。然而,目前市面上之視覺化工具,若需要改變核心功能,以達到改善執行效率或顯像品質的目的,將比重新開發此功能要困難。但是,不少類似之功能,如果一再重複開發,同樣會消耗大量的時間。因此,國網中心視算與互動媒體實驗室決定從 2002 年開始,開發一套函式庫 3D VR Engine,選定地形視覺化與容積視覺化兩大應用為開發主軸,並且朝大資料量、即時互動與虛擬實境三大目標尋求重點突破。
架構
3D VR Engine 所扮演之功能角色如總架構圖所示,主要負責三維圖形、視覺運算與虛擬實境三類演算法之計算。他奠基於 OpenGL、GLUT、GLEW、 FTGL、FreeType、FLTK、 libiconv、Expect、OpenMP、STL、Pthread 與自行開發之 IMT 函式庫。
3D VR Engine 之內部架構如下圖所示,由內而外(畫面由下到上)可以大致分為六大類。第一類為基礎元件,除了上述所使用之函式庫外,另外開發一數學運算函式庫。第二類為顯像,負責幾何顯像與容積顯像。第三類為互動元件,包括物體、貼圖、光源、聲音與 shader。第四類為場景,包括場景控制與 XML Parser。第五類為介面,包括二維與三維圖形介面。第六類為互動,包括使用者操作、連續動作控制、網路互動、人工智慧元件與模擬,這部份的元件,有些則尚在開發中。
特色
3D VR Engine 包含有底下之特點:
- 基礎三維圖形數學運算。
- Oriented Bounding Box。
- 三維顯像與立體顯像。
- 使用者指定之按鍵連結。
- 自動導航。
- 幾何模型格式支援:OBJ、PLY、DTM/Geotiff、SHP。
- 多層次精細度。
- 大型地形資料。
- Tiled Textures。
- 3D TrueType Fonts。
- XML 場景描述語言。
- 容積顯像。
Image Processing Toolkit(IMT)
簡介
視算與互動媒體實驗室主要專注於科學視算及虛擬實境的相關應用,在我們所接觸的 Terrain 及醫療兩大領域中,處理許多大型地理資料(衛星影像)及醫學影像,為了更正確且有效率的呈現這些資料,需要一套工具對原始資料進行影像處理,然而,目前市面上現有的工具,對於我們所處理的資料沒有全面性的支援,因此,我們決定開發一套函式庫 Image Processing Toolkit (IMT)。
IMT 是一套影像處理函式庫,使用 C++ 物件導向的概念設計而成,架構設計上力求彈性,使程式易於修改及新增功能。開發的目的是提供使用者一個容易使用的影像處理函式庫,可讀取與輸出影像檔案,也可對讀取的影像進行影像處理後再輸出。
架構圖
IMT 由三個單元所組成,分別是負責儲存 Pixels 資料的 Data Container;負責讀取及寫入影像檔案的 File IO;負責影像處理的 Image Processing 單元。基於 IMT 彈性的架構,我們可藉由擴充 File IO 內的 Info Class,來支援更多的檔案格式,也可擴充 Image Processing 單元,來增加 IMT 的影像處理功能。
特色
- 易於使用的 C++ 物件導向設計函式庫。
- 可執行多種影像處理方法。
- 支援檔案格式:BMP、DICOM、JPEG、TIFF、GeoTIFF、PNG、HDR。
- 可處理的影像維度涵蓋 1D 到 4D。
- 可同時處理 8 bit /16 bit / 32 bit 的影像。
- 可跨平台(Windows 及 Linux)。
影像處理結果
Basic Image Processing
Edge Detection
3D Resize
Cockroach Brain Volume Data