用於內窺鏡圖中管狀結構最優顯示的動態裁剪框確定的製作方法
2024-03-31 16:16:05
專利名稱:用於內窺鏡圖中管狀結構最優顯示的動態裁剪框確定的製作方法
技術領域:
本發明涉及3D數據集的交互顯示的領域,並且,更加具體地,涉及動態確定裁剪框(crop box)以最優化內窺鏡圖中管狀結構的顯示。
背景技術:
醫療保健專家和研究人員常常對觀察管狀解剖結構的內部感興趣,像例如受檢者身體的血管(例如大動脈)或消化系統內腔結構(例如結腸)之類。在歷史上,用戶能夠觀察這些結構的僅有方法是通過插入內窺鏡探頭和照相機,如傳統的結腸鏡檢查或內窺鏡檢查中的那樣。隨著複雜成像技術的出現,像例如磁共振成像(「MRI」)、回波平面成像(「EPI」)、計算機斷層掃描(「CT」)和較新的電阻抗斷層掃描(「EIT」)之類,能夠獲得各種內腔器官的多個圖像並由此構造3D體(3D volume)。然後能夠給放射學家或其他診斷專家繪製(render)這些體,用於對患者管狀器官的內部做非侵入性檢查。
例如,在結腸鏡檢查中,能夠由一組下腹部的CT切片(通常在300-600張的範圍內,但是也可以在1000張以上)來編輯體數據(volumetric data)集。這些CT切片能夠例如通過各種內插法來擴充,以產生使用傳統體繪製技術能夠繪製的三維體。使用這樣的技術,能夠在適當的顯示器上顯示三維數據集,並且使用戶能夠進行患者結腸的虛擬旅行,這樣一來就免除了插入內窺鏡的需要。這樣的過程被稱為「虛擬結腸鏡檢查」,並且近來已變得對患者可用。
儘管有其非侵入性的明顯優點,但是仍然存在虛擬結腸鏡檢查中固有的某些不便和困難。一般地說,這些問題在使用傳統技術的任何管狀解剖結構的虛擬檢查中都存在。
例如,傳統的虛擬結腸鏡檢查把用戶的觀察點置於結腸腔內部,並且通常沿著計算中心線在整個內部移動這個觀察點。在這樣的顯示中,假定是標準單視場顯示,則通常缺乏深度提示(depth cue)。這樣,結腸的重要特性可能未被看到,並且可能依然沒有察覺問題區域。
另外,內窺鏡圖中管狀解剖結構的典型顯示只在顯示屏上示出部分結構。通常,內窺鏡圖僅對應整個管狀結構的一小部分,例如按掃描體的2%至10%,和按管狀結構長度的5%至10%或再多一些。在這樣的內窺鏡圖的顯示當中,如果顯示系統繪製整個結腸而僅顯示其一小部分,則這樣的技術既耗時又低效。如果系統能夠確定並且為用戶或觀察者僅繪製要被實際顯示的部分,則這樣就能夠節省大量的處理時間和存儲空間。
進一步,如體繪製技術中公知的那樣,需要繪製和顯示的體素(voxel)越多,計算資源方面的需求就越高。計算資源方面的需求還與給定用戶所選擇的清晰度水平成比例,例如通過增加數字圖像放大或者通過提高繪製質量。如果選擇更高的清晰度,則在體採樣期間必須產生更多數量的多邊形。當要採樣更多的多邊形時,就需要繪製更多的像素(並且一般而言屏幕上的每個像素會被重複填充許多次),並且填充率會降低。在高水平的清晰度下,這樣大量的輸入數據會減慢所觀察的體片斷的繪製速度,並且,例如用戶在向新的位置移動觀察點之後,需要等待填充顯示的圖像。
另一方面,通常希望有更高的清晰度,並且事實上常常是需要的,以便能輔助用戶進行周密的診斷或分析。另外,如果期望深度提示,例如通過立體地繪製所關注的體,則需要輸入到繪製算法的採樣多邊形的數目會加倍,從而做繪製時所需的存儲器也加倍。
一般地說,當用戶一次一部分地交互觀察大的3D數據集,其中任何一個時候觀察的部分是整個數據集的一小部分,但是所述的部分不能先驗地確定,對所有這樣的情形,上述現有技術的問題都是存在的。如處理不實際顯示的體素,從所正顯示體素的處理和繪製中移走所需要的計算資源,除了其他困難還引入等待狀態等,除非採用某種方式的補救,否則這樣的交互觀察就沒什麼用處。
這樣,該技術領域中所需要的就是顯示大3D數據集的過程最優化,其中,在許多給定的時刻,正被檢查的體部分僅僅是完整體的子集。這樣的優化應該更加有效地利用計算資源,並在待繪製的每個體素需要大量計算的高解析度下,提供有深度暗示、更高清晰度和工具及功能性自由使用的無縫無等待狀態的查看。
發明內容
提供了用於動態確定裁剪框以優化例如管狀結構的虛擬內窺鏡圖之類的3D數據集的子集的顯示的方法和系統。在本發明的示例性實施例中,「射線發射」技術能夠用於動態確定裁剪框的尺寸和位置。在這樣的實施例中,例如,可以把射線發射到給定的體中,並且,例如它們和內腔的交叉可以確定裁剪框邊界。在本發明的示例性實施例中,射線不需要發射到固定的方向,而是能夠例如使用隨機偏移量來發射,所述隨機偏移量隨幀的改變而變化,以使得可以更完全地覆蓋顯示區域。在其他示例性實施例中,可以在可能誤差的區域發射更多的射線,例如從當前觀察點沿著管狀結構中心線的最遠範圍的方向或靠近的方向來發射。在這樣的示例性實施例中,射線可以按空間和時間改變,其中,例如在每個幀中,示例性程序例如可以在不同的方向上發射出不同數量的射線,並且那些射線的分布可以處於不同的模式。因為動態優化的裁剪框僅包圍3D數據集在任何時間點的實際顯示部分,所以在繪製數據集期間所使用的處理周期和存儲器用量能夠被顯著最小化。
從以下的附圖以及各種示例性實施例的詳細說明中,本發明的進一步的特徵、其性質以及各種優點將更加明了。
本發明的另外的目標和優點將部分地在隨後的說明中闡述,並且可以部分地通過說明書而變得明了,或者可以通過對本發明的實施來獲知。藉助於附加權利要求中特別指出的要素和組合,可以實現並獲得本發明的目標和優點。
要理解的是,前述一般說明和以下詳細說明都只是示例性的和解釋性的,並且不是如權利要求書那樣限制本發明。
圖1示出了部分人類結腸的示例性虛擬內窺鏡圖;圖1(a)是圖1的灰度版本;圖2示出了作為示例性人類結腸的整個結構圖的一小部分顯示的示例性當前觀察框;圖2(a)是圖2的灰度版本;圖3描繪了根據本發明的示例性實施例的發射到當前虛擬內窺鏡圖中的示例性射線;圖3(a)是圖3的灰度版本;圖4描繪了圖3的發射射線的側視圖;圖4(a)是圖4的灰度版本;圖5顯示了根據本發明的示例性實施例的所限定的示例性裁剪框,用以包圍發射射線的所有命中點;圖6描繪了根據本發明的示例性實施例的用於限定裁剪框的一組示例性均勻分布的射線命中點,其中沒有繪製出結腸的最遠部分;圖6(a)是圖6的灰度版本;圖7示出了根據本發明的示例性實施例的利用關於所示出中心線的端部均勻分布的一組附加命中點來擴充圖6的一組示例性命中點;圖7(a)是圖7的灰度版本;圖8(a)-(d)示出了根據本發明的各種實施例的體軸對準的裁剪框和視錐(viewing frustrum)對準的裁剪框的生成;圖9(a)和(b)示出了用於繪製體的示例性大採樣距離(和小的相應數量的多邊形);圖9(c)和(d)分別是圖9(a)和(b)的灰度版本;圖10(a)和(b)顯示了用於繪製體的相對於圖9的較小採樣距離(和較大的相應數量的多邊形);圖10(c)和(d)分別是圖10(a)和(b)的灰度版本;圖11(a)和(b)顯示了用於繪製體的相對於圖10更小的採樣距離(和更大的相應數量的多邊形);圖11(c)和(d)分別是圖11(a)和(b)的灰度版本;圖12(a)和(b)示出了用於繪製體的相對於圖11更小的採樣距離(和更大的相應數量的多邊形);圖12(c)和(d)分別是圖12(a)和(b)的灰度版本;圖13(a)和(b)示出了用於繪製體的示例性的最小的採樣距離(和最大的相應數量的多邊形);圖13(c)和(d)分別是圖13(a)和(b)的灰度版本;圖14描繪了根據本發明的示例性實施例的具有隨機偏移量的發射射線;以及圖14(a)是圖14的灰度版本。
注意,本專利或申請文件包含至少一幅顏色附圖。當請求並支付必要的費用,美國專利局就會提供具有彩色附圖的該專利或專利申請公布的副本。為了說明的目的,同樣提供了每幅彩色附圖的灰度附圖。在以下說明中,給定附圖的彩色和灰度版本將被一同稱作該附圖(例如「圖4」包括彩色圖「圖4」及其對應的灰度圖「圖4(a)」),即附圖應理解為包括附圖的所有版本。
具體實施例方式
本發明的示例性實施例針對使用射線發射技術來提高體的可視部分的最終繪製速度。
在繪製體的時候,最終繪製速度與以下因素成反比(a)輸入數據長度——數據長度越大,在繪製它時所消耗的存儲器和CPU時間就越多;(b)顯卡的紋理存儲器(texture memory)的物理尺寸與程序所需要的紋理存儲器尺寸的比——如果所需要的紋理存儲器超過了物理紋理存儲器尺寸,則會涉及紋理存儲器交換,這是耗時的操作。實際上,當處理大量數據時這種交換可能頻繁地發生,從而導致性能急劇降低;(c)在當前時刻待繪製體(裁剪框)的尺寸——裁剪框越小,需要採樣和繪製的多邊形的數量越少;(d)繪製的清晰度(亦即所使用多邊形的數量)——清晰度越高,需要越多的多邊形;以及(e)陰影(shading)的使用——如果可使用陰影,則需要4倍的紋理存儲器。
這樣一來,如果能夠優化上述因素中的一個或多個,就會提高最終繪製速度。在本發明的示例性實施例中,這可以通過優化裁剪框的尺寸來實現。
在本發明的示例性實施例中,可以使用射線發射算法來計算裁剪框的尺寸。為了有效地應用這樣的示例性算法,需要處理以下問題a.每個顯示幀所發射的射線數量。在理論上,越多越好,但是發射的射線越多,處理速度越慢;b.3D空間中射線的分布。射線應當覆蓋所有的所關注的表面。為了實現這一點,在本發明的示例性實施例中,例如,可以使射線的布置隨機化,所以對於相同數量的射線能夠獲得更大的覆蓋率。對於需要更加注意的區域,例如,可以朝它們發射更多的射線;對於不太需要注意的區域,可以使用更少數量的射線;以及c.射線發射結果的使用(單幀對多幀)。在本發明的示例性實施例中,在每個幀中都能夠收集命中點結果。在一個示例性的實施中,可以局部地、亦即在當前顯示幀中使用這種結果,並且在裁剪框的計算之後丟棄;可選擇地,例如,可以保存信息並且用於給定數量的後續幀,因此能夠獲得更好的結果而不必執行另外的計算。
為了說明的目的,使用像例如結腸之類的示例性管狀結構來說明本發明。對於到那些用戶在任何時候都只能見其一小部分的3D數據集的擴展,也充分包含在本發明的範圍之內。
在根據本發明的示例性實施例中,3D顯示系統可以確定用戶觀察點周圍的給定管狀解剖結構的可見區域作為所關心區域,而不需要繪製該管狀結構的其餘部分。例如,在虛擬結腸鏡檢查中虛擬觀察結腸的用戶通常並不同時查看結腸內腔的整個內壁。相反地,用戶在一個時候只觀察內部結腸的一小部分或片斷。圖1示出了這樣的內部結腸的小片斷的示例性內窺鏡圖。例如,如圖2所示,通過形成圍繞整個結構之內所關注區域的邊框,可以選擇這樣的片斷來顯示。所選擇的片斷通常充滿主視窗,如圖1所示,所以能夠充分詳細地觀看。這樣一來,隨著用戶的觀察點在整個結腸內腔移動,不必要繪製包含整個結腸完整的體數據集,而是僅繪製用戶在任何給定的時間點將觀看的部分。不必繪製對用戶而言從他的當前觀察點對他不可見的體素,因而極大地優化了系統性能並減少了計算資源上的負載。在本發明的示例性實施例中,負載荷能夠被減少到整個掃描的僅僅3%到10%,這是顯著的優化。
這樣,在根據本發明的示例性實施例中,就能夠使用「發射射線」方法。例如,可以構造射線,在3D模型空間中的任何位置處開始,並且在3D模型空間中的任何其他位置處結束。在圖3和4中顯示了這樣的「射線發射」,其中,圖3示出了發射到結腸的當前內窺鏡圖中的射線,而圖4則示出了當從側面來觀察時的發射射線。通過相對於規定閾值檢查射線穿過的每個體素的值,這樣的示例性系統能夠獲得關於任何兩點的「可見度」的信息。表示內腔壁之間的空氣的體素是「不可見的」,並且射線能夠穿過它們。一旦到達第一個「可見的」體素,就獲得了內腔壁上的體素的位置。這樣的位置有時會被稱作「命中點」。
在本發明的示例性實施例中,根據以下示例性的偽代碼能夠實現這樣的射線發射的算法。
A.用於distribute_rays的偽代碼在每個繪製循環中確定投影寬度和高度;//(如果改變——否則見下文)將投影平面分成m×n個柵格,每個柵格具有(寬度/m)×(高度/n)的尺寸;並且從當前觀察點朝向每個柵格的中心發射一根射線。
整數m和n例如都可以等於5,或者例如可以採用適合給定實施的其他值。在許多示例性實施例中,投影寬度和高度是已知因素,像例如在任何OpenGL程序中(當用戶指定時),因而它並不總是變化;這樣一來,在這樣的情況下就不需要在每個循環中都確定這些值。
B.用於ray_shooting的偽代碼對於每根射線,1.從射線的起始點朝向這根射線的方向,沿著該路徑拾取第一個體素;2.對於所述體素,檢查該體素的強度值是否超過了特定閾值;如果是,3.那麼它是「固體」體素,並且取它的位置作為「命中點」位置,返回;
如果否,4.轉到沿著該路徑拾取下一個體素,轉到2;5.如果不存在要拾取的體素(例如射線從該體離開),則返回;在本發明的示例性實施例中,射線的方向就是從當前觀察點到每個柵格的中心,並且能夠例如按如下設置ray.SetStartingPoint(currentViewpoint.GetPosition);ray.SetDirection(centerOfGrid-currentViewpoint.GetPosition);C.用於calculating_bounding_box的偽代碼對於所有的「命中點」坐標(x,y,z),找到最小和最大值分別為Xmin、Xmax、Ymin、Ymax、Zmin和Zmax。以(Xmin,Ymin,Zmin)作為一個角而以(Xmax,Ymax,Zmax)作為相對角的方框就是所需的邊界框。
這樣一來,通過使用這樣的「發射射線」方法,在本發明的示例性實施例中,系統就能夠例如從用戶的當前觀察點構造任意數量的射線並沿任何方向發送它們。這些射線中的一些(如果不是全部的話)沿著它們給定的方向將最終命中內腔壁上的體素;這產生了一組「命中點」。這樣的命中點的組因而描繪了從該特殊觀察點可見的區域的範圍。例如在圖3和4中,所產生的命中點分別地在彩色附圖中被顯示為黃色或青色的彩色點,或者在灰度附圖中被顯示為白十字標和黑十字標。圖3中顯示的青色點(黑十字標)顯示了例如由均勻分布到可見區域中的一組射線生成的命中點。黃色點(白十字標)指示了用於另一組發射射線的命中點,所述另一組發射射線僅瞄準該體的一部分,居中於示例性結腸內腔的中心線的一個端部。由於能夠逐個地計算從命中點到用戶觀察點的距離中的每一個,所以這種技術能夠用於動態地描繪自任何給定觀察點的可見度框。這樣的可見度框內的體素就是當用戶處於該給定觀察點時需要繪製的僅有的體素。可見度框例如可以具有不規則形狀。為了易於計算,示例性系統能夠例如通過簡單成形的「裁剪框」包圍可見度框,所述簡單成形的「裁剪框」例如為圓柱、球體、立方體、矩形稜柱或其他簡單的3D形狀。
在圖5中進一步示出了上述方法。參考所述附圖,在圖5中通過眼睛圖標表示用戶的觀察點。從這個觀察點,示例性射線能夠例如在多個方向上發射,其在所示出的點處命中結構的表面。然後能夠拼接成矩形區域,以便在一定的用戶規定的安全裕量之內包含所有的命中點。
在本發明的示例性實施例中,例如可以按如下規定的安全裕量的方式生成邊界框D.用於calculate_bounding_box_safety_margin的偽代碼對於具有角(Xmin,Ymin,Zmin)和(Xmax,Ymax,Zmax)的邊界框,向其添湊偏移量,使得框變為(Xmin-offset,Ymin-offset,Zmin-offset)和(Xmax-offset,Ymax-offset,Zmax-offset);其中偏移量可以是相同的,或者可以對於X、Y和Z方向中的每一個分開設置。
在本發明的示例性實施例中,這樣的矩形區域例如可以關於管狀結構的右壁包圍可見度區域,如圖5中描繪的那樣。類似的技術可以例如應用於左壁,以及對於該觀察點如此產生的總的裁剪框。
在根據本發明的示例性實施例中,通常,例如,遍布用戶當前視場的40到50根這樣的射線就可以收集關於管狀結構表面布局的足夠信息,使得形成可見度區域。在本發明的示例性實施例中,發射的射線的數量是可調節的。這樣一來,發射的射線越多,結果就越好,但是計算越慢。這樣一來,在本發明的示例性實施例中,發射的射線的數量在給定範圍中就可以取適當的值,從而平衡這兩個因素,亦即計算速度和優化裁剪框所需要的精確度。
在用於calculate_bounding_box的上述偽代碼中,其中聲明了以下函數{對於所有的「命中點」坐標(x,y,z)},如果「命中點」不僅來自當前幀,而且還來自以前的幾幀,則在本發明的示例性實施例中,仍然能夠準確計算邊界框。實際上,如果保存了來自以前幀的足夠信息,則在示例性實施例中結果甚至能夠更好。
在本發明的示例性實施例中,可用按如下來使用來自以前幀的命中點E.用於在後續的幀中使用以前命中點的偽代碼對於每個顯示循環,hit_points=ShootRays;//如上hit_points_pool.add(hit_points);//將新命中點添加到「池」中,//儲藏區使用hit_points_pool中所有命中點來確定裁剪框;//以前只使用當前hit_points,//前面循環中的hit_points已被刪除,//並且從不重複使用在本發明的示例性實施例中,hit_points_pool例如可以存儲既來自當前又來自以前(一個或幾個)循環的hit_points。這樣,在每個循環中,用於確定裁剪框的hit_points的數量就可以大於實際射出的射線的數量;因而,所有的hit_points都能夠例如存儲到hit_points_pool中,並且在以後的循環中重複使用。
如上所述,通過收集關於命中點的信息,在本發明的示例性實施例中,能夠利用這樣的命中點的坐標以產生包圍它們全部的(軸對準的)裁剪框。這能夠在給定的觀察點處定義對於用戶可見的區域或所關注的區域。這樣的裁剪框例如可用於減少在任何給定時刻需要繪製的整個體的實際量,如上所述。注意,對於許多3D數據集而言,理想的裁剪框可能不是軸對準的(亦即用該體的x、y和z軸對準),而是能夠例如在給定的觀察點處用視錐(viewing frustrum)對準。這樣的對準進一步減少了裁剪框的尺寸,但是對於繪製在計算上可能更加複雜。圖8(a)-(d)描繪了軸對準的裁剪框和視錐對準的裁剪框之間的差異。這樣一來,在本發明的示例性實施例中,當自由對準的裁剪框可行並且是所希望的,裁剪框能夠例如是視錐對準的,或者是對給定數據集和可用計算資源適合的任何其他方式對準的。
參考圖8,顯示了這樣的示例性自由對準的裁剪框。圖8(a)描繪了關於整個示例性結腸體的給定觀察點處的示例性視錐。如能夠看到的那樣,這樣的錐與該體的軸沒有特定的自然對準。圖8(b)描繪了如上所述獲得的示例性命中點。圖8(c)描繪了包含這些命中點的示例性體軸對準的裁剪框。如能夠看到的那樣,裁剪框具有出現了無用數據的額外空間。但是,這些體素將在顯示循環中被繪製。圖8(d)描繪了示例性視錐對準的裁剪框,其中裁剪框對準觀察點方向以及在3D空間中正交於該方向矢量的方向。如能夠看到的那樣,這樣的裁剪框「自然地」與該數據的形狀相配,並且從而能夠顯著地變小,然而,為了指明包含在其內的體素,在本發明的示例性實施例中,示例性系統可能需要執行計算密集型的坐標變換。
在示例性實施例中,裁剪框的尺寸可以顯著小於整個待分析結構的體。例如,在本發明的示例性實施例中,它可以是用於結腸鏡檢查應用的原始體的5%以下。因此,能夠極大改善繪製速度。
如上所述,繪製速度取決於許多因素。圖9-13示出了採樣距離(亦即為了繪製用於再採樣該三維體的垂直於觀察方向的多邊形之間的距離)、需要繪製的多邊形的數量、繪製質量以及裁剪框之間的關係。
圖9-13中每一個的左側部分(亦即標記(a)和(c)的附圖的部分)顯示紋理多邊形,而右側部分(亦即標記(b)和(d)的附圖的那些部分)則僅顯示多邊形的邊。在任何給定的時刻,所示出的所有多邊形的範圍實際上構成立方體形狀,這反映了下述事實多邊形的尺寸由裁剪框確定,所述裁剪框在這個階段之前計算,亦即,在每個顯示循環中,緊接著顯示之前計算裁剪框。所以,事實上,多邊形指示了裁剪框的形狀。
圖9是通過故意地指定非常大的採樣距離而產生的,其導致再採樣期間使用非常少的多邊形。這給出了非常低的清晰度。圖9中顯示的多邊形的數量僅為大約4或5個。
在圖10中採樣距離已減小,因此多邊形的數量增加。然而按照這個值圖像仍然是無意義的。圖11和12描繪了採樣距離進一步減小(以及相應的採樣距離增加)的效果並從而給出了更高的清晰度,並且作為結果,內腔的形狀看來似乎更加可識別。然而多邊形的數量已急劇增加。
最後,在圖13中看到了最好的圖像質量,並且這些附圖是使用成千上萬個多邊形生成的。多邊形的邊彼此是如此緊密,以致於在右邊的圖中(亦即13(b)和(d))它們看來似乎連接成了面。
獲得可包圍所有的可見體素的裁剪框的一種笨拙方法是,發射出和用於顯示的像素的數量相等的若干射線,這樣一來就覆蓋了整個屏幕區域。然而,如果屏幕區域為例如512×512個像素,則這需要發射近似512×512=262,144根射線。由於必須處理所涉及數量的像素和射線,這樣的方法常常是不切實際的。
這樣一來,在本發明的示例性實施例中,就能夠發射一組射線,其解析度例如足以捕獲可見邊界的形狀。這種類型的射線組在圖3中以青色(黑十字標)顯示。
如從描繪了示例性結腸的圖3和6中能夠看到的那樣,通常特定觀察點處的最大深度大多數在中心線的後部顯現。這是因為在內窺鏡圖中用戶一般向結腸內看,或者指向盲腸,或者指向直腸。這樣一來,遍布結腸體發射的均勻分布的射線(在圖3和6中顯示為青色射線或黑十字標)將不會命中可見體素的最遠邊界。如果射線之間的距離(可稱為它們的「解析度」)例如大於在圖像後部的結腸內腔的直徑(在這種情況下),那麼發射的射線可能全都返回太靠近觀察點的命中點,以至於在裁剪框中未包括結腸內腔的後面部分。這樣一來,在圖6中,管狀結構的後面部分就未被顯示,並且黑色像素填充了該空白。為了補救這個,在本發明的示例性實施例中,可以檢查中心線(或已知與發射的第一組低解析度射線遺漏的可見度框的部分相關聯的其他區域),使得可以相對於屏幕區域確定「管」的可見部分的另外端部在哪裡。
在本發明的示例性實施例中,例如,這可以按如下實現在前面的用於distribute_rays的偽代碼中在步驟3之後,4.通過找出中心線通向哪裡來確定所關注的區域;5.將包含這個所關注區域的投影平面的部分進一步分成更小的柵格;並且6.朝每個柵格的中心發射一根射線。
例如步驟(4)能夠實施如下。由於在本發明的示例性實施例中,示例性程序可以具有當前觀察點的位置以及它在中心線上的位置和中心線的形狀,所以該程序例如可以沿著當前方向簡單地增量地檢查到離開中心線上N釐米的點,直到這樣的點不再可見為止;然後在投影平面上,例如可以確定最後可見的點的相應位置用於確定所關注的區域的示例性偽代碼(上面的步驟4)1.取得當前觀察點位置P0;2.取得當前觀察點位置P0在中心線上的相對位置(依據從中心線的起始離開多少釐米)3.取得中心線點Pi,其從當前觀察點離開(n×i)釐米(假定n=5cm);4.通過從P0向Pi發射射線,檢查P0和Pi是否相互可見如果在P0和Pi之間存在命中點(這意味著射線在到達Pi之前命中),那麼P0和Pi是不可見的;返回P(i-1);否則i=i+1;轉到3;步驟(5)能夠例如實施如下用於柵格再化分的示例性偽代碼(上面的步驟5)對於以前步驟中計算的最後可見的點,1.取得這個點在投影平面上的投影;2.取得整個投影平面的尺寸1/m的矩形區域,其在投影平面上居中於這個點(實際上例如設置m=5);以及3.將這個矩形區域分成m×m柵格(對於m=5,25個柵格)。
這樣,在本發明的示例性實施例中,例如,系統可以發射居中於中心線端部的另外的射線,以便使用上面描述的射線發射方法填充遺漏的部分,但是具有大得多的解析度或者小得多的射線之間的間隔。在圖7中示出了這種方法的結果,其中,管狀結構不再具有遺漏的部分,因為第二組射線(在圖7中以黃色或白十字標示出)已沿著實際邊界獲得了足夠的命中點以捕獲其形狀並從而充分地將其包圍在裁剪框中。
考慮圖6中描繪的情形,在本發明的替換示例性實施例中,當試圖更好地捕獲所要求的裁剪框的範圍時,在固定的方向上不變地發射射線可能是沒有用的。相反地,在這樣的實施例中,例如可以使用隨機偏移量來執行射線發射,以使得命中點之間的距離不統一。這能夠消除上面描述的發射射線的「低解析度」問題。在圖14中示出了這樣的技術,其中,在每個循環中,數字1,2,……,6分別表示循環1,2,……,6的每一個中所發射的射線,每次都具有不同的隨機化的偏移量。
這樣一來,參考圖14,使用如上面提供的那樣的用於distribute_rays的示例性偽代碼,示例性的實施例如可以不僅朝向每個柵格的確切中心發射一根射線,而且還例如可以隨機化每根射線的方向,以使得射線的方向(dx,dy)變為(dx+random_offset,dy+random_offset)。
使用這樣的示例性技術,發射的射線的總數量保持相同,但是相鄰幀中的射線並不沿著同樣路徑發送。與使用固定方向的射線方法相比,這種方法因而能夠例如更加全面地覆蓋顯示區域,並且在示例性實施例中能夠消除對第二組更加集中的(「更高解析度」)射線的需要,如圖7中示出的那樣,其發射到該體的一部分中,其中,已知邊界具有小的縫隙(相對於第一組射線的射線間距離),但是具有大的+Z坐標(亦即從觀察點來看,它延伸到屏幕中很遠處)。
示例性系統以數據處理器上運行的軟體的形式、以一個或多個專用晶片形式的硬體的形式、或者以上述任何組合的形式,能夠實施本發明。示例性系統可以包括例如立體顯示器、數據處理器、映射交互顯示控制命令和功能的一個或多個接口、一個或多個存儲器或存儲裝置、以及圖形處理器和相關系統。例如,運行RadioDexter軟體的由新加坡的Volume Interactions Pte Ltd製造的Dextroscope和Dextrobeam系統就是這樣的系統,在所述系統上能夠容易地實施本發明的方法。
本發明的示例性實施例能夠作為可以由適當的數據處理器執行的指令的模塊化軟體程序來實施,如本領域中已知或可能已知的那樣,因此實現本發明的優選實施例。示例性軟體程序可以存儲在例如硬碟驅動器、快閃記憶體存儲器、存儲棒、光學存儲介質、或其他數據存儲裝置上,如本領域中已知或可能已知的那樣。當這樣的程序由適當的數據處理器的CPU訪問並運行時,在本發明的示例性實施例中,它能夠執行上述的方法,在3D數據顯示系統中顯示管狀結構的3D計算機模型或多個模型。
儘管已參考其一個或多個示例性實施例說明了本發明,但是本發明並不限於此,而是附帶的權利要求應被解釋為不僅包含所示出的本發明的特定形式和改型,而且還進一步包含像由本領域技術人員設計而不背離本發明的真正範圍的那些。
權利要求
1.一種用於最優化3D數據集的動態顯示的方法,該方法包括從當前觀察點確定3D數據集的相關部分的邊界;顯示所述的3D數據集的所述相關部分;以及每當所述的當前觀察點的坐標變化時,重複所述確定和所述顯示過程。
2.如權利要求1所述的方法,其中,所述3D數據集的相關部分是管狀結構的內窺鏡圖。
3.如權利要求2所述的方法,其中,通過從當前觀察點向所述管狀結構的環繞內壁發射射線來實現所述的確定邊界。
4.如權利要求1所述的方法,其中,所述3D數據集的相關部分是結腸的內窺鏡圖。
5.如權利要求4所述的方法,其中,通過從中心線上的當前觀察點向所述管狀結構的環繞內壁發射射線來實現所述確定邊界。
6.如權利要求3所述的方法,其中,所述射線是從所述管狀結構的中心線上的觀察點發射的,並且分布所述射線以便覆蓋可見區域。
7.如權利要求6所述的方法,其中,所述射線在所述可見區域的範圍內均勻分布。
8.如權利要求6所述的方法,其中,發射所述射線的方向包括隨機分量。
9.如權利要求3所述的方法,其中以第一解析度在管狀結構之內從當前觀察點向第一區域內發射第一組射線;並且以第二解析度從所述當前觀察點朝向第二區域發射第二組射線,其中所述第二區域是所述第一區域的子集。
10.如權利要求9所述的方法,其中,所述第二區域被確定為所述第一組射線採樣可能不足的區域。
11.如權利要求9所述的方法,其中,檢查環繞下述方向的所述管狀結構的區域,在所述方向上發現了具有距觀察點最大距離的可見體素,由此來確定所定義的區域。
12.如權利要求9所述的方法,其中,通過檢查所述中心線在當前場景中變為不可見之處,來確定所定義的區域。
13.如權利要求3或9所述的方法,其中,在管狀結構內沿著中心線的發射射線的每一個點處,從表示人眼位置的兩個觀察點的每一個中發射所述射線。
14.一種電腦程式產品,包含計算機可使用介質,其具有包含在其內的計算機可讀程序代碼裝置,所述電腦程式產品中的所述計算機可讀程序代碼裝置包含這樣的裝置以使得計算機從當前觀察點確定3D數據集的相關部分的邊界;顯示所述的3D數據集的所述相關部分;以及每當所述的當前觀察點的坐標變化時,重複所述確定和所述顯示過程。
15.一種機器可讀的程序存儲裝置,實際包含所述機器可執行的指令的程序,以執行用於最優化3D數據集的動態顯示的方法,所述方法包含從當前觀察點確定3D數據集的相關部分的邊界;顯示所述的3D數據集的所述相關部分;以及每當所述的當前觀察點的坐標變化時,重複所述確定和所述顯示過程。
16.如權利要求14所述的電腦程式產品,其中,所述裝置進一步使計算機以第一解析度在管狀結構之內從當前觀察點向第一區域中發射第一組射線;並且以第二解析度從所述當前觀察點朝向第二區域發射第二組射線,其中所述第二區域是所述第一區域的子集。
17.如權利要求15所述的程序存儲裝置,其中,所述方法進一步包含以第一解析度在管狀結構之內從當前觀察點向第一區域中發射第一組射線;並且以第二解析度從所述當前觀察點朝向第二區域發射第二組射線,其中所述第二區域是所述第一區域的子集。
全文摘要
提供了用於動態確定裁剪框以使像例如管狀結構的內窺鏡圖之類的3D數據集的子集的顯示最優化的方法和系統。在本發明的示例性實施例中,「射線發射」技術能夠用於動態確定裁剪框的尺寸和位置。在這樣的實施例中,所發射的射線被均勻分布到給定的體中,並且它們和內腔的交叉確定了裁剪框邊界。在替換的示例性實施例中,射線不需要發射到固定的方向,而是可以使用隨機偏移量來發射,所述隨機偏移量隨幀的改變而變化,以便更加全面地覆蓋顯示區域。在其他示例性實施例中,為了取得更好的結果,在像例如管狀結構的中心線所通向的可能誤差的區域處,可以發射更多的射線。在這樣的實施例中,射線不需要均勻分布,而是可以按空間和時間來改變。亦即,在每個幀中,示例性程序例如可以在不同的方向上發射出不同數量的射線,並且那些射線的分布可以處於不同的模式。因為在示例性實施例中,動態最優化的裁剪框僅包圍3D數據集的實際顯示部分,所以處理周期和存儲器用量被最小化。
文檔編號G06T15/00GK1879128SQ200480032870
公開日2006年12月13日 申請日期2004年11月3日 優先權日2003年11月3日
發明者揚·關 申請人:布拉科成像S.P.A.公司