王增波 向海蘭 賀丹 熊湘林



摘要:針對隱形牙套矯治技術開發了一套虛擬牙齒矯正仿真系統,利用Vc++和OpenGL作為開發平臺,實現了模型導入顯示、交互操作、面片拾取、牙齒分割和矯正路徑規劃等功能,生成的三維牙頜組織模型幫助醫生模擬牙齒矯正的過程,并且直觀地向患者展示手術治療的效果。
關鍵詞:仿真系統;牙齒矯正;交互式操作;拾取面片;分割
中圖分類號:TP39 文獻標識碼:A
文章編號:1009-3044(201 9133-0272-03
1概述
目前由于金屬矯正器治療存在著諸多的不足,新興了一種新型的用于錯頜畸形矯正的虛擬手術技術
隱形牙套矯治技術,該技術采用一種隱形牙齒矯正手術對患者進行牙齒矯正,文獻【1】中指出這種無托槽隱形矯治技術是通過計算機輔助制作出一套透明的彈性材料矯正牙套裝置,通過在小范圍不斷移動牙齒達到矯正牙齒的目的,因為這種牙套裝置外形美觀、佩帶舒適,在臨床中受到廣大患者的歡迎。文獻【1】中通過對比傳統矯治技術和無托槽隱形矯治技術,分析了無托槽隱形矯治技術的效果及臨床優勢。這類手術是通過對患者的牙頜數字模型進行交互式操作,再通過計算機仿真為患者量身定制一系列近乎無法察覺的透明牙托來完成整個矯正療程。這種牙齒矯正方法能讓醫生在牙齒矯正手術前通過對牙頜數字模型進行交互式操作定制療程,也能讓用戶在術前體驗未來的矯正過程,因此開發一套虛擬牙齒矯正仿真系統就具有非常重要的現實意義。整個虛擬仿真過程要經歷三維牙齒模型數字化掃描處理、三維拓撲結構重構、牙頜組織分割、牙齒交互重排、牙齒移動路徑規劃等諸多過程。下面就該系統的設計與實現效果進行介紹。
2矯正仿真系統的功能設計
牙齒矯正是個復雜的過程,牙齒矯正傳真系統主要是通過模型的三維直觀顯示和交互操作,幫助正畸醫生制定牙齒矯正計劃,系統的主要功能有:
(1)STL文件導入模塊。系統操作的數據來源于事先掃描好的三維數據,數據格式為常用的快速原型系統所應用的標準文件類型STL文件格式,系統需要實現從二進制和純文本兩種格式的STL文件里提取三角面片信息,并建立合理的數據結構對三角面片信息進行拓撲重構。
(2)控制顯示模塊。通過鼠標動作或工具按鈕操作實現三維牙齒模型的多方位的觀察,并能實現對模型任意地縮放和任意角度的旋轉。
(3)快速拾取模塊。通過鼠標對三維牙齒模型的交互式操作,并在工具欄上設置為牙齒標記組合框,用于對牙齦和牙齒進行標記區分。
(4)數據測量模塊。利用快速拾取模塊可以測量出牙齒模型上的任意兩點的距離等信息。
(5)模型分割模塊。采用交互標記擴展分割法對牙齒進行分割,對單個牙齒分別進行保存,并設計單齒運動的數據存儲結構,存儲單齒運動的狀態參數。
(6)分割后交互式操作模塊。對分割的各部件可實現獲取、平移、旋轉等各種交互式操作。
(7)牙弓線生成模塊。在通過交互式操作獲取牙齒模型的各項關鍵數據參數的基礎上,采用合理的數學模型生成理想牙弓曲線,作為牙齒重排的依據。
(8)動畫生成模塊。采用關鍵幀技術,利用路徑規劃方法,依據理想牙弓曲線,生成符合生物醫學和口腔正畸學的理想牙列,并記錄牙齒移動的關鍵幀運動參數,插值生成牙齒移動過程的動畫序列。
3矯正仿真系統的實現
根據前面的功能需求,為了實現較好的交互和可視化效果,系統開發采用Vc++的MFC進行編程實現,利用OpenGL三維圖形庫實現三維模型的顯示和交互式操作,系統通過設置合理的菜單和工具欄按鈕,完成的主界面如圖1所示,菜單欄和工具欄實現了所有的功能,如圖2所示,其中有些菜單項和按鈕是灰色的不能操作是因為前面的工作還未完成這些功能是不能操作的,當前面所需的工作完成了灰色的狀態就會取消變成可操作,這樣可避免使用者的不規范操作或錯誤操作。
3.1模型文件導入及顯示模塊
通過鼠標單擊導入按鈕,實現響應函數OnFileOpenf)的功能模塊,該功能模塊顯示打開文件對話框,并進行一些變量初始化的工作;通過使用ImportSTLO函數載人數據,建立拓撲關系并建立模型的顯示列表供顯示使用;并判斷是否已存在分割文件,若存在通過調用OnShowDentition()函數顯示分割后的模型。模型被導入后會自動調用拓撲結構生成算法,生成面片間的拓撲結構,并調用顯示模塊顯示出三維牙齒模型,并可以通過工具欄上的相應按鈕實現實體模型顯示、網格模型顯示、點云顯示、平移、放大、縮小、旋轉、自動旋轉、坐標軸顯示、模型信息顯示、模型重置、材質渲染、數據測量等交互功能,按鈕位置按順序見圖2加框部分。
3.2拾取模塊
通過鼠標單擊拾取按鈕回響應函數OnPickup()的功能模塊,該功能模塊首先初始化區域劃分數組m_tag大小為面片數,該數組值表示該面片所屬牙齒的編號;在響應鼠標左鍵單擊按下調用拾取函數GetSelectionRay(),通過拾取算法找到一個距離最近的相交三角形作為拾取面片,并把拾取的面片索引保存在數組IntersectFlag中,交點坐標保存在數組PickPointion中,同時對拾取的面片作上分類標記,拾取效果如下圖3所示。拾取過程中通過鼠標左鍵單擊不同牙齒或牙齦上的特征點作為分割模塊的種子點,工具欄上有一個下拉列表框會自動切換牙齒的名稱,也可以自己先確定牙齒名稱再進行拾取,如果某個牙齒分割效果不太理想,可以在這顆牙齒上再多選一到兩個點,再進行分割。
3.3分割模塊
分割模塊通過菜單“分割方法”的下拉菜單項目中選擇交互式標識分割、自動域值分割和域值設定分割三種方法,滿足使用者的不同需求。三種不同的分割方法會自動調用對應的分割算法,根據拾取模塊確定的種子點進行牙齒和牙齦的分割,分割后用不同顏色的渲染對各顆牙齒和牙齦進行渲染顯示,如圖4所示。
3.4分割后牙齒的交互操作
牙齒被分割后需要對牙齒和牙齦以獨立對象進行顯示,并通過鼠標能夠對單顆牙齒進行交互式操作,具體的這些功能在工具欄和菜單欄上有相應的按鈕和菜單項可以調用。
(1)顯示牙列模塊
打開“交互排牙”菜單中的相應菜單項或工具欄中相應圖標按鈕實現牙列渲染和繪制牙弓曲線,實現牙頜模型的真實感渲染效果以及牙弓線的繪制輔助矯正后牙齒的定位。通過單擊工具欄上按鈕囹調用響應函數onshowdentitionO建立各牙齒顯示列表,分開顯示各顆牙齒,按牙齒白和牙齦紅兩色方式顯示牙齒模型,如圖5所示。
4結論
該仿真系統利用vc++和0penGL開發平臺,研制出一套基于隱形牙套矯治技術的虛擬牙齒矯正系統,通過對患者牙齒的三維牙頜數字模型進行三維重構、交互式操作、牙齒分割和路徑規劃等模塊功能的實現,完成了牙齒矯正過程的可視化,并為后期的治療提供了大量的數據。