專利名稱:三維模型分割方法、裝置以及包含該裝置的圖像處理系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上說涉及圖像處理的技術(shù)領(lǐng)域,更具體而言,涉及對(duì)三維模型進(jìn)行分 割的方法、裝置以及包含該裝置的圖像處理系統(tǒng)。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)和計(jì)算機(jī)輔助設(shè)計(jì)CAD建模工具的發(fā)展,三維模型得以廣泛使 用。與此同時(shí),三維模型越來越精細(xì),數(shù)據(jù)量越來越大。為了有效地存儲(chǔ)、處理、渲染、傳輸 這些模型,三維模型分割技術(shù)引起了廣泛關(guān)注。三維模型分割技術(shù)可將復(fù)雜的模型分割成 為相對(duì)簡單、數(shù)據(jù)量小的模型,進(jìn)而單獨(dú)處理這些數(shù)據(jù)量較小的模型,大大提高了存儲(chǔ)、處 理、渲染等工作效率;同時(shí)分割結(jié)果對(duì)輸入模型給出了結(jié)構(gòu)化的描述,便于模型管理和重復(fù) 使用。到目前為止,已經(jīng)提出了大量的模型分割技術(shù)。根據(jù)分割結(jié)果,這些技術(shù)可大體上 分為兩類1、基于面片的技術(shù);在這種技術(shù)中,三維網(wǎng)格被分割為一系列不同的面片基元, 例如平面、柱面、球面等;這類技術(shù)可作為預(yù)處理手段,有助于提取模型的低層次特征;2、 基于立體部件的技術(shù);在這種技術(shù)中,三維網(wǎng)格被分割成一系列立體基元,如長方體、球體、 錐體等;這類技術(shù)從較高層次上描述了輸入模型的結(jié)構(gòu),在目標(biāo)檢測、局部匹配等領(lǐng)域具有 很高的應(yīng)用價(jià)值。下面通過引用相關(guān)文獻(xiàn)對(duì)現(xiàn)有的模型分割技術(shù)進(jìn)行逐一地簡介。參考文獻(xiàn)列表[非專利文獻(xiàn)-1]作者為 Besl, P. J.,Jain, R.,名稱為 Segmentation through Variable-Order Surface Fitting,發(fā)表于 IEEE PAMI,10 (2),1988,167-192 ;[非專利文獻(xiàn)-2]作者為 Garland,Μ.,Willmott,Α.,Heckbert, P. S.,名 禾爾!Hierarchical Face Clustering on Polygonal Surfaces,發(fā)表于 Proceeding of Symposium on Interactive 3D Graphics,2001,214-223 ;[非專利文獻(xiàn)-3]作者為 Zhang, Y.,Paik, J.,Koschan, Α.,Abidi,Μ· Α.,名稱為 A Simple and Efficient Algorithm for Part Decomposition,發(fā)表于 Proceeding of International Conference on Image Processing,2002,273-276 ;[非專利文獻(xiàn)-4]作者為 S. Katz,G. Ieifman :Α· Tal,名稱為=Mesh segmentation using feature point and core extraction,發(fā)表于 The Visual Computer, 21 (8-10) 865-875,2005 ;[非專利文獻(xiàn)-5]作者為 R. Liu,H. Huang,名稱為 Segmentation of 3d meshes through spectral clustering,發(fā)表于 Pacific conference on Computer graphics and applications,298-305,2004 ;[非專利文獻(xiàn) _6]作者為 R. Seidel,名稱為A simple and fast incremental randomized algorithm for computing trapezoid decompositions and for triangulating polygons,發(fā)表于 Computational Geometry :Theory and Applications, Vol. 1,No. 1,51-64,1991 ;
4
Joseph O'Rourke,Computational geometry in C (second edition),發(fā)表于 Cambridge University Press, page. 1-40 ;[非專利文獻(xiàn) _8]作者為 Nina Amenta,Marshall Bern,Manolis Kamvysselis,名 禾爾為:A new voronoi-based surface reconstruction algorithm,發(fā)表于ACM SIGGRAPH, 415-421,1998 ;[非專利文獻(xiàn)_9]作者為王志強(qiáng),肖立瑾,名稱為多邊形的簡單性,方向及內(nèi)外點(diǎn) 的判別算法,發(fā)表于《計(jì)算機(jī)學(xué)報(bào)》,No. 2,Vol. 21,183-187,1998。作為現(xiàn)有的一種方法,[非專利文獻(xiàn)-1]中的方法屬于上述的第一類技術(shù),本方法 采用區(qū)域增長的方法對(duì)深度圖進(jìn)行分割。在這種方法中,首先計(jì)算出每個(gè)頂點(diǎn)對(duì)應(yīng)的平均 曲率和高斯曲率;然后根據(jù)曲率構(gòu)建種子區(qū)域,并用二次多項(xiàng)式來表達(dá);接著對(duì)每個(gè)種子 區(qū)域,計(jì)算周圍的頂點(diǎn)對(duì)該區(qū)域的隸屬度,根據(jù)隸屬度進(jìn)行區(qū)域增長并更新種子區(qū)域,直到 各個(gè)區(qū)域不再增長為止。由于曲率對(duì)局部噪聲很敏感,該方法抗噪聲能力較差。作為現(xiàn)有的一種方法,[非專利文獻(xiàn)_2]中的方法屬于上述第一類技術(shù),本方法通 過三角形聚類,從而達(dá)到分割的目的。在這種方法中,首先利用三角形之間的鄰接關(guān)系建 立對(duì)偶圖,在對(duì)偶圖中,每個(gè)三角形作為一個(gè)節(jié)點(diǎn),初始狀態(tài)下每個(gè)三角形面作為獨(dú)立的聚 類;然后計(jì)算對(duì)偶圖中各條邊的收縮指標(biāo);然后根據(jù)平面度、三角形間的方向差異等屬性, 將對(duì)偶圖中的某些對(duì)偶邊收縮,也即將對(duì)偶邊連接的兩個(gè)節(jié)點(diǎn)合并為1個(gè),相鄰的兩個(gè)聚 類從而合并成一個(gè)大的聚類,直到對(duì)偶圖中的所有邊不能收縮為止。作為現(xiàn)有的一種方法,[非專利文獻(xiàn)_3]中的方法屬于上述第二類技術(shù)。在本方 法中,首先計(jì)算各個(gè)頂點(diǎn)對(duì)應(yīng)的高斯曲率;然后根據(jù)設(shè)定的閾值,標(biāo)記具有較大的負(fù)曲率的 頂點(diǎn)作為邊界點(diǎn);然后,隨機(jī)選擇非邊界點(diǎn)作為種子進(jìn)行聚類,直到碰到邊界頂點(diǎn)為止。這 種方法易于實(shí)現(xiàn),然而非常依賴于預(yù)先設(shè)定的閾值。作為現(xiàn)有的一種方法,[非專利文獻(xiàn)_4]中的方法屬于上述第二類技術(shù)。本方 法將輸入模型由粗到精逐漸分割為若干部分,這種方法引入了 MDS(Multidimensional Sealing)變換,使得分割結(jié)果具有空間位置不變性,提出了一種魯棒的特征點(diǎn)提取方法,從 而將三維模型分割為若干部分,并且引入了割集方法進(jìn)一步改善各個(gè)部分的邊緣。該方法 理論上可以得到不錯(cuò)的分割結(jié)果,然而計(jì)算量比較大,不利地影響了實(shí)際應(yīng)用。作為現(xiàn)有的一種技術(shù),[非專利文獻(xiàn)_5]中的方法屬于上述第二類技術(shù)。在該方 法中,首先計(jì)算描述三維模型的各個(gè)面片之間相似度的對(duì)偶圖,其中面片之間的相似度結(jié) 合了面片之間的測地距離和角度距離;接著采取譜聚類的方法實(shí)現(xiàn)三維模型分割。這種方 法需要預(yù)先設(shè)置聚類的數(shù)目,而且對(duì)于具有平滑邊緣的模型可能得不到自然的分割結(jié)果。綜合來看,現(xiàn)有的三維模型分割技術(shù)通常會(huì)應(yīng)用到一些復(fù)雜的特征,諸如曲率、 三角形面間的測地距離、突起函數(shù)(Protrusion function)等。這些特征的精確計(jì)算比較 困難,而且它們對(duì)局部噪聲很敏感。目前的方法存在的主要問題有1、對(duì)噪聲敏感的特征諸 如曲率的引入,使得技術(shù)抗噪聲能力較弱;2、模型分割技術(shù)比較復(fù)雜,計(jì)算量比較大,影響 分割效率,如[非專利文獻(xiàn)_4]中的方法;3、采用目前的方法,分割得到的結(jié)果通常以面片 或面片組合的方式來表達(dá),而不是封閉的三維實(shí)體;4、早期的模型分割方法通常存在過分 割的問題。
發(fā)明內(nèi)容
為了克服上述現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的在于提供對(duì)三維模型進(jìn)行分割的 方法、裝置以及包含該裝置的圖像處理系統(tǒng),使得能夠?qū)θS模型進(jìn)行準(zhǔn)確和高效的分割。根據(jù)本發(fā)明的實(shí)施例,提供一種用于對(duì)三維模型進(jìn)行分割的方法,包括有界平面 生成步驟,用于根據(jù)輸入的三維模型的三角形網(wǎng)格數(shù)據(jù)對(duì)所述三維模型中包含的所有三角 形進(jìn)行處理,以生成至少一個(gè)適用于對(duì)所述三維模型進(jìn)行分割的有界平面;輪廓圖提取步 驟,用于通過所述生成的有界平面來提取出所述三維模型的輪廓圖;和輪廓圖分割步驟,用 于根據(jù)所述生成的有界平面的信息以及所述三維模型的頂點(diǎn)鄰接圖的信息,將所述提取出 的輪廓圖分割成一個(gè)子圖或者至少兩個(gè)相互不重疊的子圖,其中,所述頂點(diǎn)鄰接圖通過以 下方式構(gòu)建根據(jù)所述三維模型的三角形網(wǎng)格數(shù)據(jù),以三維模型的頂點(diǎn)為節(jié)點(diǎn),在被一個(gè)或 多個(gè)三角形所共有的每兩個(gè)頂點(diǎn)之間添加一條邊,從而構(gòu)建頂點(diǎn)鄰接圖。根據(jù)本發(fā)明的實(shí)施例,還提供一種用于對(duì)三維模型進(jìn)行分割的裝置,包括有界平 面生成單元,用于根據(jù)輸入的三維模型的三角形網(wǎng)格數(shù)據(jù)對(duì)所述三維模型中包含的所有三 角形進(jìn)行處理,以生成至少一個(gè)適用于對(duì)所述三維模型進(jìn)行分割的有界平面;輪廓圖提取 單元,用于通過所述生成的有界平面來提取出所述三維模型的輪廓圖;輪廓圖分割單元,用 于根據(jù)所述生成的有界平面的信息以及所述三維模型的頂點(diǎn)鄰接圖的信息,將所述提取出 的輪廓圖分割成一個(gè)子圖或者至少兩個(gè)相互不重疊的子圖,其中,所述頂點(diǎn)鄰接圖通過以 下方式構(gòu)建根據(jù)所述三維模型的三角形網(wǎng)格數(shù)據(jù),以三維模型的頂點(diǎn)為節(jié)點(diǎn),在被一個(gè)或 多個(gè)三角形所共有的每兩個(gè)頂點(diǎn)之間添加一條邊,從而構(gòu)建頂點(diǎn)鄰接圖。本發(fā)明的其他實(shí)施例還提供一種視頻圖像處理系統(tǒng),其具有根據(jù)本發(fā)明的如上所 述的用于分割三維模型的裝置。這種圖像處理系統(tǒng)例如是目標(biāo)檢測系統(tǒng)、局部匹配系統(tǒng)、模 型檢索系統(tǒng)。此外,本發(fā)明的其他實(shí)施例還提供一種存儲(chǔ)有機(jī)器可讀取的指令代碼的程序產(chǎn) 品,所述指令代碼由機(jī)器讀取并執(zhí)行時(shí),可執(zhí)行如上所述的根據(jù)本發(fā)明的用于分割三維模 型的方法。如上所述,根據(jù)本發(fā)明的實(shí)施例的三維模型分割方法和裝置可將輸入的三維模型 由粗到細(xì)地逐層分割為若干部分,直到不能分割為止。且每個(gè)部分均為封閉的立體部件。從 而使得可以對(duì)輸入的三維模型進(jìn)行有效地分割,并利用分割結(jié)果對(duì)輸入的三維模型進(jìn)行精 確地分析和重構(gòu)。
參照下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例的說明,會(huì)更加容易地理解本發(fā)明的以上和其 它目的、特點(diǎn)和優(yōu)點(diǎn)。附圖中的部件不是成比例繪制的,而只是為了示出本發(fā)明的原理。在 附圖中,相同的或類似的技術(shù)特征或部件將采用相同或類似的附圖標(biāo)記來表示。圖1是示出了根據(jù)本發(fā)明的實(shí)施例的用于對(duì)三維模型進(jìn)行分割的方法的流程簡 圖;圖2a_2c是示出了在根據(jù)本發(fā)明的實(shí)施例的三維模型分割方法中,將待分割三維 模型預(yù)先分割為若干個(gè)相互分離的子模型的示意性簡圖;圖3a_3c是示出了在根據(jù)本發(fā)明的實(shí)施例的三維模型分割方法中進(jìn)行有界平面提取的一個(gè)實(shí)例的示意圖;圖4a_4b是示出了在根據(jù)本發(fā)明的實(shí)施例的三維模型分割方法中進(jìn)行輪廓圖提 取的一個(gè)實(shí)例的示意圖;圖5是示出了在根據(jù)本發(fā)明的實(shí)施例的三維模型分割方法中,根據(jù)提取到的有界 平面、輪廓圖等信息進(jìn)行模型分割的一個(gè)實(shí)例的示意流程圖;圖6是示出了如圖5中所示的流程圖中步驟S510的處理的一個(gè)實(shí)例的示意流程 圖;圖7是示出以圖4中示出的有界平面1為分割面,對(duì)輸入的三維模型進(jìn)行分割而 得到的各個(gè)子圖均包含選定的分割面的一個(gè)實(shí)例的簡圖;圖8a_8d是示出了在根據(jù)本發(fā)明的實(shí)施例的三維模型分割方法中,根據(jù)選定的候 選分割面對(duì)輸入三維模型進(jìn)行分割得到的結(jié)果中存在子圖位于選定分割面的一側(cè),但不含 選定的分割面的情況的一個(gè)實(shí)例的簡圖;圖9a_9c是示出了在根據(jù)本發(fā)明的實(shí)施例的三維模型分割方法中,根據(jù)選定的候 選分割面對(duì)輸入的三維模型進(jìn)行分割得到的結(jié)果中存在跨越選定分割面的子圖的情況的 一個(gè)實(shí)例的簡圖;圖IOa-IOc是示出了在根據(jù)本發(fā)明的實(shí)施例的三維模型分割方法中進(jìn)行洞判別 處理的一種情況的一個(gè)實(shí)例的簡圖;圖Ila-Ilb是示出了在根據(jù)本發(fā)明的實(shí)施例的三維模型分割方法中進(jìn)行洞判別 處理的另一種情況的一個(gè)實(shí)例的簡圖;圖12a_12b是示出了在根據(jù)本發(fā)明的實(shí)施例的三維模型分割方法中中,對(duì)分割結(jié) 果中的各個(gè)實(shí)體重新組織的示意圖;圖13是示出了根據(jù)本發(fā)明的實(shí)施例用于分割三維模型的裝置的示意框圖。
具體實(shí)施例方式下面參照附圖來說明本發(fā)明的實(shí)施例。在本發(fā)明的一個(gè)附圖或一種實(shí)施方式中描 述的元素和特征可以與一個(gè)或更多個(gè)其它附圖或?qū)嵤┓绞街惺境龅脑睾吞卣飨嘟Y(jié)合。應(yīng) 當(dāng)注意,為了清楚的目的,附圖和說明中省略了與本發(fā)明無關(guān)的、本領(lǐng)域普通技術(shù)人員已知 的部件和處理的表示和描述。圖1是示出了根據(jù)本發(fā)明的實(shí)施例對(duì)輸入的待分割三維模型進(jìn)行分割的方法的 流程簡圖。如圖所示,根據(jù)本發(fā)明的該實(shí)施例的分割三維模型的方法100開始于步驟S100。 在有界平面生成步驟S110,根據(jù)輸入的三維模型的三角形網(wǎng)格數(shù)據(jù)對(duì)該三維模型中包含的 所有三角形進(jìn)行處理,以生成至少一個(gè)適用于對(duì)該三維模型進(jìn)行分割的有界平面。在輪廓 圖提取步驟S120,通過所生成的有界平面來提取出三維模型的輪廓圖。在輪廓圖分割步驟 S130,根據(jù)所生成的有界平面的信息以及三維模型的頂點(diǎn)鄰接圖的信息,將所提取出的輪 廓圖分割成一個(gè)子圖或者至少兩個(gè)相互不重疊的子圖。其中,頂點(diǎn)鄰接圖通過以下方式構(gòu) 建根據(jù)三維模型的三角形網(wǎng)格數(shù)據(jù),以三維模型的頂點(diǎn)為節(jié)點(diǎn),在被一個(gè)或多個(gè)三角形所 共有的每兩個(gè)頂點(diǎn)之間添加一條邊,從而構(gòu)建頂點(diǎn)鄰接圖。下面將結(jié)合附圖對(duì)各步驟進(jìn)行詳細(xì)描述。有界平面生成步驟SllO的目的在于將組成模型表面的三角形合理組織,得到一
7系列(至少一個(gè))適用于對(duì)三維模型進(jìn)行分割的有界平面。根據(jù)本發(fā)明的該實(shí)施例,輸入 的三維模型需要以三角形網(wǎng)格來表達(dá),基本數(shù)據(jù)元素包括模型的頂點(diǎn)和組成模型表面的三 角形。輸入的待分割三維模型可以具有各種形式,例如,通過掃描產(chǎn)生的點(diǎn)云模型、通過各 種建模工具產(chǎn)生的參數(shù)化模型、或者以多邊形(而不是三角形)網(wǎng)格表示的模型等等。在 應(yīng)用根據(jù)本發(fā)明的方法之前,首先需要將這些形式表達(dá)的三維模型轉(zhuǎn)化為三角形網(wǎng)格的形 式??衫酶鞣N現(xiàn)有的方法實(shí)現(xiàn)這種轉(zhuǎn)化。例如,若輸入的是多邊形表達(dá)的三維模型,可以 應(yīng)用上述的[非專利文獻(xiàn)_7]所公開的方法將各個(gè)多邊形轉(zhuǎn)化為一系列三角形;若輸入的 是點(diǎn)云模型,可以利用上述的[非專利文獻(xiàn)_8]中所述的方法將其轉(zhuǎn)化為三角形網(wǎng)格的形 式。有界平面可能由一個(gè)或多個(gè)封閉區(qū)域組成。該步驟主要由兩個(gè)子步驟組成1、通過組合所有的三角形,獲取所有的廣義平面; 2、從獲得的廣義平面中,檢測到所有的有界平面,便于后續(xù)的輪廓圖提取、分割、重建等處理。在子步驟1中,首先初始化以三角形網(wǎng)格來表達(dá)的待分割三維模型中的每一個(gè)三 角形,g卩,將每一個(gè)組成待分割模型表面的三角形作為一個(gè)子平面,有多少個(gè)三角形就有多 少個(gè)子平面,其中以三角形的法線方向作為子平面的法線方向。三角形法線方向可由公知 的計(jì)算公式計(jì)算得到,此處的法線方向指垂直于三角形平面且指向待分割三維模型外部的 方向。然后,將滿足聚合條件的子平面聚合成一個(gè)新的子平面,直到所有的子平面不能再聚 合為止。在此,通過子平面聚合處理得到的平面稱為“廣義平面”。此處,子平面可聚合的條 件是⑴法線方向相同或相反;⑵頂點(diǎn)處于同一個(gè)平面上。圖3a_3c是示出了在根據(jù)本發(fā)明的實(shí)施例的三維模型分割方法中進(jìn)行有界平面 提取的一個(gè)實(shí)例的示意圖。圖3a示出了一個(gè)三角形網(wǎng)格表達(dá)的三維模型,該模型含有20 個(gè)頂點(diǎn)和36個(gè)三角形。圖3b表示經(jīng)過第一個(gè)子步驟后得到的廣義平面,總共檢測到10個(gè) 廣義平面。為了描述簡潔清楚起見,圖3b中僅示出了其中的三個(gè)廣義平面,即,廣義平面1, 廣義平面2和廣義平面3。在子步驟2中,應(yīng)用平面自身的幾何特征以及平面間的關(guān)系等信息,將子步驟1得 到的廣義平面進(jìn)行處理以得到一系列有界平面。有關(guān)平面自身的幾何特征以及平面間的關(guān) 系的信息包括各平面上包括的頂點(diǎn)及其坐標(biāo),平面之間的連接關(guān)系,對(duì)于某一個(gè)平面,除 了該平面上的頂點(diǎn)之外其他頂點(diǎn)與該平面的相對(duì)位置,各平面上的三角形數(shù)據(jù)等。以如前 所述的方式對(duì)輸入的三維模型進(jìn)行了的三角形網(wǎng)格表達(dá)之后,就相應(yīng)地可獲得這些信息。 當(dāng)兩個(gè)平面存在至少一個(gè)公共點(diǎn)時(shí),兩平面被認(rèn)為相互連接。對(duì)所有檢測到的廣義平面中 的每一個(gè)進(jìn)行如下處理,直到所有的廣義平面都不需處理為止。1)根據(jù)輸入三維模型的三角形網(wǎng)格數(shù)據(jù),對(duì)位于該廣義平面上的三角形創(chuàng)建三角 形鄰接圖。如果該三角形鄰接圖不連通時(shí),即該廣義平面上的三角形可被劃分到若干個(gè)分 離的子平面中,且每個(gè)子平面包含一個(gè)或多個(gè)相互連接的三角形(這些三角形具有至少一 個(gè)公共點(diǎn))時(shí),該廣義平面才需要處理,即,將該廣義平面劃分為若干個(gè)子平面。例如圖3b 中的廣義平面1和廣義平面2分別可以劃分為兩個(gè)互不相連的子平面,而廣義平面3不需 要進(jìn)行這種劃分。三角形鄰接圖是表達(dá)三角形連接關(guān)系的圖。在創(chuàng)建三角形鄰接圖時(shí),以 三角形網(wǎng)格數(shù)據(jù)中包括的各個(gè)三角形作為節(jié)點(diǎn),如果兩個(gè)三角形擁有公共點(diǎn),則在由該兩 個(gè)三角形表示的節(jié)點(diǎn)之間添加一條邊,由此得到三角形鄰接 ??梢酝ㄟ^分別連接該兩個(gè)三角形中的任意點(diǎn),例如兩個(gè)三角形的中點(diǎn),來添加該邊。如果三角形鄰接圖中的任意一對(duì) 節(jié)點(diǎn)(即兩個(gè)三角形)之間存在路徑相連,則認(rèn)為該三角形鄰接圖是連通的。這里的路徑 通常是由一條邊或多條邊組成的。2)如果通過上述處理1)獲得的兩個(gè)或多個(gè)子平面同時(shí)與另外同一個(gè)平面相連 接,則這些子平面需要組合起來作為一個(gè)組合的有界平面,以方便模型分割。例如,在圖3b 中,子平面2-1和子平面2-2均與有界平面3相連接,因此這兩個(gè)子平面被組合在一起成為 一個(gè)組合的有界平面;而且沿著這個(gè)組合的有界平面,圖3a-3c中所示的三維模型可被分 割為兩部分。在具體實(shí)施過程中,可通過迭代方式進(jìn)行有界平面的檢測處理,即,更新子步 驟1產(chǎn)生的廣義平面以使得平面的數(shù)目不再變化。因此在開始時(shí),此處的“另外同一個(gè)平 面”指的是子步驟1得到的廣義平面,之后,此處的“另外一個(gè)平面”就可能是指已經(jīng)更新得 到的有界平面了。3)在通過上述處理1)獲得的子平面中,對(duì)于某一子平面,在頂點(diǎn)鄰接圖中,如果 連接到該子平面上的頂點(diǎn)處于該子平面的同一側(cè)時(shí),該子平面可以稱為“獨(dú)立的”有界平 面,即,無需與其他平面進(jìn)行組合的有界平面。例如,在圖3b中,與子平面1-1相連接的四 個(gè)頂點(diǎn)處于該子平面的同一側(cè),因此子平面1-1可作為獨(dú)立的有界平面;同理平面1-2亦可 稱為獨(dú)立的有界平面。然而,子平面2-1和子平面2-2不滿足該條件,因此它們是有界平面 但不是獨(dú)立的有界平面。此外,圖3b中的廣義平面3也被認(rèn)為是無需與其他子平面進(jìn)行組 合處理的有界平面(參見圖3c)。在此,頂點(diǎn)鄰接圖是根據(jù)輸入三維模型的三角形網(wǎng)格數(shù)據(jù) 而構(gòu)建的、描述頂點(diǎn)連接關(guān)系的圖。在構(gòu)建頂點(diǎn)鄰接圖時(shí),以三維模型的頂點(diǎn)為節(jié)點(diǎn),如果 兩個(gè)節(jié)點(diǎn)被一個(gè)或多個(gè)三角形(即,輸入的三角形網(wǎng)格數(shù)據(jù)中包括的三角形)所共有,則在 該兩個(gè)節(jié)點(diǎn)之間添加一條邊,從而構(gòu)建出頂點(diǎn)鄰接圖。圖3c給出了經(jīng)過子步驟2處理后的結(jié)果,有界平面的數(shù)量為11個(gè)。其中廣義平 面1被劃分為兩個(gè)有界平面分別與圖3b中的子平面1-1和子平面1-2對(duì)應(yīng)的有界平面 11以及有界平面1,而其余有界平面分別與上述子步驟1得到的廣義平面對(duì)應(yīng),即,其余平 面保持不變。需要注意,為了描述清楚和簡潔起見,圖中并未示出全部的有界平面??梢姡鲜鲇薪缙矫嫔商幚硎遣扇〉姆绞竭M(jìn)行的,S卩,對(duì)子步驟1中產(chǎn)生的 廣義平面進(jìn)行更新,直到平面的數(shù)目不再變化為止,由此得到一個(gè)或者多個(gè)有界平面。此 外,從上面的描述可知,“有界平面”是適用于對(duì)所述三維模型進(jìn)行分割的,即,滿足上述相 應(yīng)條件的平面。有界平面包括無需與其他平面進(jìn)行組合的有界平面(例如圖3c中的有界 平面11,有界平面1和有界平面3),以及包括對(duì)需要組合的子平面進(jìn)行組合處理得到的組 合的有界平面(例如圖3c中的有界平面2)。本領(lǐng)域技術(shù)人員理解,取決于待分割的三維模型,有界平面生成步驟SllO所生成 的有界平面的數(shù)量可以是一個(gè)或者多個(gè)。下面將描述如圖1中的所示的輪廓圖提取步驟S120的細(xì)節(jié)。該步驟利用檢測到 的有界平面的數(shù)據(jù),提取三維模型的輪廓并以圖的方式表達(dá)之。在此過程中,根據(jù)有界平面 之間的連接關(guān)系,判斷處于相互連接的兩平面邊緣上的線段是否為輪廓線。最后,以模型頂 點(diǎn)作為頂點(diǎn),以提取到的輪廓線作為邊,構(gòu)建輸入的待分割模型對(duì)應(yīng)的輪廓圖。每個(gè)有界平 面的數(shù)據(jù)例如包括有關(guān)落在該面上的頂點(diǎn)、三角形、法線方向以及面積等的信息。在該步驟中,主要采用如下兩個(gè)基本規(guī)則來確定輪廓線1)內(nèi)部邊不能作為輪廓線。如果一條邊僅在某一個(gè)有界平面內(nèi),或者被同一有界平面上的兩個(gè)或多個(gè)三角形所共 有時(shí),該邊被判定為內(nèi)部邊。2)每條輪廓線至少要連接到兩個(gè)不同的有界平面,而且在每一 個(gè)有界平面內(nèi),都存在一個(gè)三角形使得它的某一條邊包含該輪廓線。按照上面兩條原則,在輪廓提取過程中,首先初始化輪廓圖,以輸入的待分割三維 模型的頂點(diǎn)作為輪廓圖的頂點(diǎn),頂點(diǎn)之間不存在連接,即,圖中只有頂點(diǎn)沒有邊。然后采取 以下步驟在相應(yīng)頂點(diǎn)之間添加輪廓線,以得到輸入三維模型的輪廓圖。1)對(duì)每個(gè)有界平面,查找與之相連接的有界平面。例如,在圖4a中,有界平面1和 有界平面2存在四個(gè)公共點(diǎn)A、B、C和D,因此有界平面1和有界平面2相互連接。2)對(duì)每個(gè)有界平面,按照如下方式依次處理每一個(gè)與之相連接的有界平面,以提 取輪廓線。 獲取處于該有界平面和與之相連接的那個(gè)平面邊界上的頂點(diǎn),并根據(jù)這些頂點(diǎn) 的位置,將它們排序。如圖4a中,位于有界平面1和2邊界上的頂點(diǎn)有4個(gè),經(jīng)過排序后, 它們是A-B-C-D。 將排序后的頂點(diǎn)順序連接。如圖4a中,將落在有界平面1和2邊界上的4個(gè)頂 點(diǎn)A、B、C和D順序連接,得到3條線段即=AB, BC和CD。 對(duì)每一條線段,判斷其是否滿足輪廓線的條件。如果滿足,在輪廓圖中相應(yīng)的兩 頂點(diǎn)之間添加連接的邊。如圖4a所示,線段B-C被有界平面2上的三角形T2-2和T2-3所 共有,因此它是內(nèi)部邊,不能作為輪廓線;線段A-B被有界平面1的三角形Tl-I的一條邊所 包含,同時(shí)被有界平面2上的三角形T2-1所包含,因此該線段滿足輪廓線的條件,在輪廓圖 中節(jié)點(diǎn)A和B之間添加一條邊;同理線段C-D也是輪廓線。上述的提取輪廓線的處理,是針對(duì)每一個(gè)有界平面都要進(jìn)行的。此外,在上面的 處理中,如圖4a所示出的位于有界平面1和2邊界上的頂點(diǎn)有4個(gè),需要經(jīng)過排序以得到 A-B-C-D的有序組合。進(jìn)行排序是為了減少所涉及的處理負(fù)荷,屬于優(yōu)化方案。也可以不對(duì) 所獲取的頂點(diǎn)進(jìn)行排序。例如,在圖4a-4b所示出的實(shí)例中,如果不對(duì)獲得的頂點(diǎn)A,B,C,D 進(jìn)行排序,則將各個(gè)頂點(diǎn)任意連接后得到的線段的數(shù)量大于3,例如,除了線段AB,BC和CD 之外還得到其余的線段AC,BA,DC等等。但是,這些其余的線段或者因?yàn)椴粷M足上述的作為 輪廓線的條件而被剔除,例如線段AC,或者因?yàn)槭侵丿B的線段而被剔除,例如,線段BA,DC 分別與線段AB,CD重疊,屬于同一條邊。因此,即使不對(duì)所獲得的頂點(diǎn)進(jìn)行排序,也可以得 到輸入三維模型的準(zhǔn)確的輪廓圖。下面將描述如圖1中所示的輪廓圖分割步驟S130的細(xì)節(jié)。該步驟的處理根據(jù)前面步驟的處理所獲得的有界平面、頂點(diǎn)鄰接圖等信息,將從 輪廓圖提取步驟S120輸入的輪廓圖由粗到細(xì),逐層分割分割為一個(gè)子圖或者至少兩個(gè)相 互不重疊的子圖。圖5示出了在根據(jù)本發(fā)明的實(shí)施例的三維模型分割方法中,根據(jù)提取到 的有界平面、輪廓圖等信息進(jìn)行模型分割的一個(gè)實(shí)例的示意流程圖。如圖5所示,在候選分 割面檢測步驟S500,從在前面的處理中檢測到的有界平面中,查找所有候選分割面。對(duì)于任 意一個(gè)候選分割面,輸入三維模型的頂點(diǎn)分布在該候選分割面的兩側(cè),即,該候選分割面可 能將輸入的三維模型分割為若干個(gè)部分。在模型分割步驟S510,逐一利用所查找到的候選 分割面對(duì)輸入的輪廓圖進(jìn)行分割,直到將輸入的輪廓圖分割為一個(gè)子圖或者至少兩個(gè)獨(dú)立 的子圖為止,或者處理完所有的候選分割面為止。在終止條件判斷步驟S520,對(duì)分割得到的各個(gè)子圖,判斷其是否需要繼續(xù)分割。如果不需要,則直接輸出該子圖(S530)。否則,應(yīng)用 該子圖含有的候選分割面對(duì)其繼續(xù)分割(S540)。下面通過具體實(shí)例對(duì)圖5中所示的各個(gè)步驟的處理進(jìn)行詳細(xì)描述。候選分割面檢測步驟S500的目的在于從檢測到的有界平面中,查找所有可能的 適用于對(duì)三維模型進(jìn)行分割的有界平面作為候選分割面。每個(gè)候選分割面必須滿足兩個(gè)條 件1)該候選分割面上頂點(diǎn)的數(shù)目不得小于4。如果頂點(diǎn)數(shù)目小于4,說明沿著該候選分割 面進(jìn)行模型分割時(shí)需要添加額外的頂點(diǎn),處理會(huì)變得比較復(fù)雜。2)除了該候選分割面自身 包含的頂點(diǎn)外,其他頂點(diǎn)分布在該候選分割面的兩側(cè)。這里所述的其他頂點(diǎn)指的是待分割 三維模型的所有頂點(diǎn)中除了該候選分割面自身包含的頂點(diǎn)之外的頂點(diǎn)。作為優(yōu)選實(shí)施方 式,也可以只選擇連接到該候選分割面的頂點(diǎn)作為其他頂點(diǎn),這樣,得到的候選面相對(duì)少一 些,有助于減小處理復(fù)雜度。例如,如圖4a_4b所示的三維模型包含20個(gè)頂點(diǎn)、36個(gè)三角形,通過有界平面檢測 步驟得到12個(gè)平面(為描述清楚和簡潔起見,圖中未全部示出)。其中,有界平面1上含有 8個(gè)頂點(diǎn),另外有4個(gè)頂點(diǎn)處于有界平面1的上方,8個(gè)頂點(diǎn)處于有界平面1的下方,因此有 界平面1同時(shí)滿足候選分割面的兩個(gè)條件,有界平面1是一個(gè)候選分割面。而有界平面2 上含有8個(gè)頂點(diǎn),其余12個(gè)頂點(diǎn)均處于有界平面2的后側(cè),因此有界平面2不是候選分割 面。通過該步驟的處理,圖4a-4b所示的三維模型中含有1個(gè)候選分割面,即有界平面1。模型分割步驟S510的目的在于根據(jù)候選分割面,將輸入的輪廓圖分割為若干個(gè) 互不重疊的子圖。圖6示出了如圖5中所示的流程圖中步驟S510的一個(gè)實(shí)例的示意流程 圖??梢?,在該步驟的處理中,各個(gè)候選分割面被逐一嘗試,直到輸入的輪廓圖被分割為至 少兩個(gè)子圖,或者所有的候選分割面被處理完為止(即,利用所有的候選分割面進(jìn)行分割 都只將三維模型分割成一個(gè)子圖的情形,后面將詳細(xì)描述)。如圖6所示,對(duì)于選定的某個(gè) 候選分割面,首先通過該選定的候選分割面將輪廓圖分割為一個(gè)子圖或者至少兩個(gè)分離的 子圖,且每個(gè)子圖均含有該選定的候選分割面(步驟S610);其次,判斷前一步驟得到的子 圖是否含有洞,如果有,則處理洞,使得洞不能獨(dú)立存在(步驟S620);最后,采取參數(shù)化處 理來控制分割結(jié)果(步驟S630)。下面將依次介紹各個(gè)步驟的處理。假設(shè)經(jīng)過前面的處理,得到輸入三維模型的候選分割面的數(shù)目為η個(gè)(η彡1)。對(duì) 于η個(gè)候選分割面中的第i個(gè)選定的候選分割面,步驟S610的處理將輸入的輪廓圖沿著選 定的第i個(gè)候選分割面分割為一個(gè)子圖或者至少兩個(gè)分離的子圖,使得各個(gè)子圖均含有該 第i個(gè)選定的候選分割面。為實(shí)現(xiàn)該目的,該處理主要由以下三個(gè)過程完成。1)對(duì)由前面的輪廓圖提取處理獲得的輪廓圖進(jìn)行修正以得到修正的輪廓圖。艮口, 將位于選定的候選分割面上的輪廓線刪除,為模型分割做準(zhǔn)備。在如圖4a_4b所示的三維 模型中,假設(shè)以有界平面1為選定的候選分割面,該候選分割面上含有8個(gè)頂點(diǎn);刪除這8 個(gè)頂點(diǎn)之間的邊后,輪廓圖變成如圖7所示的輪廓圖。在圖7中,用實(shí)心方框和實(shí)心菱形標(biāo) 記屬于該選定的候選分割面上的頂點(diǎn)。2)根據(jù)修正后輪廓圖頂點(diǎn)之間的連接關(guān)系,將修正后的輪廓圖分割為一個(gè)子圖或 者至少兩個(gè)不連接的、即分離的子圖。在此,如果一個(gè)子圖中的頂點(diǎn)沒有任意路徑可以到達(dá) 另一個(gè)子圖中的頂點(diǎn),則認(rèn)為該兩個(gè)子圖是分離的。如圖7所示,修正的輪廓圖由兩個(gè)互不連接的子圖構(gòu)成,因此可將輸入模型的各個(gè)頂點(diǎn)按照它們之間的連接關(guān)系,劃分到該兩個(gè)子圖中。子圖1包含位于選定的候選分割 面上的四個(gè)菱形頂點(diǎn)和位于選定的候選分割面上方的四個(gè)圓形頂點(diǎn);子圖2包含位于選定 的候選分割面上的四個(gè)方框頂點(diǎn)和位于選定的候選分割面下方的八個(gè)星形頂點(diǎn)。在如圖8b_8c所示的實(shí)例中,修正的輪廓圖由三個(gè)互不連接的子圖構(gòu)成,相應(yīng)地 將輸入模型的各個(gè)頂點(diǎn)劃分到三個(gè)子圖中去,分別以菱形、圓形和星形標(biāo)記。在如圖9b_9c所示的實(shí)例中,修正的輪廓圖由三個(gè)互不連接的子圖構(gòu)成,輸入模 型的各個(gè)頂點(diǎn)相應(yīng)地被劃分到三個(gè)子圖中去,分別以菱形、圓形和星形標(biāo)記。在如圖IOb所示的實(shí)例中,根據(jù)選定的候選分割面,輸入輪廓圖可分割為四個(gè)子 圖,標(biāo)記為子圖1、2、3和4。在如圖lib所示的實(shí)例中,根據(jù)選定的候選分割面,輸入輪廓圖分割為兩個(gè)子圖, 標(biāo)記為子圖1和子圖2。3)對(duì)上述過程2得到的各個(gè)子圖,進(jìn)行必要的再組織,使得所有子圖都含有選定 的分割面。根據(jù)是否包含選定的候選分割面,前一過程2得到的各個(gè)子圖可以分為兩類第 一類含有選定的候選分割面;第二類不含有選定的候選分割面。如果前一步驟中所有的子 圖均屬于第一類時(shí),則這些子圖不需要重新處理。例如圖7所示,子圖1和子圖2均包含選定分割面,因此這些子圖不需要進(jìn)一步處 理。圖IOb和圖lib所示的各個(gè)子圖都包含選定的分割面,因此這些子圖也不需要這一步 的處理。如圖8c所示的三維模型中,根據(jù)選定的候選分割面,可以得到三個(gè)子圖子圖1、 子圖2和子圖3。子圖1和子圖3包括圖8a標(biāo)記的候選分割面,屬于第一類;而子圖2不 包含選定的候選分割面,屬于第二類。因此,該分割結(jié)果需要進(jìn)一步處理。圖9a_9c所示模型根據(jù)選定的候選分割面,可以得到三個(gè)子圖子圖1、子圖2和 子圖3。其中子圖1和子圖3包含圖9a標(biāo)記的候選分割面,屬于第一類;而子圖2不包含 選定的候選分割面,屬于第二類。因此,該分割結(jié)果需要進(jìn)一步處理。當(dāng)存在屬于第二類的子圖時(shí),這些子圖需要處理。對(duì)第二類的子圖,按照如下兩種 情況分別來處理。1)該子圖的各個(gè)頂點(diǎn)完全處于選定的分割面一側(cè)。通過頂點(diǎn)鄰接圖或被分割以得 到該子圖的輪廓圖,將該子圖和與其相連接的且處于同側(cè)的子圖重新組合得到一個(gè)新的子 圖,并將該子圖從第二類子圖中去除。在此,子圖與子圖相連接指的是頂點(diǎn)鄰接圖或被分割 以得到該子圖的原始輪廓圖中這些子圖的頂點(diǎn)之間存在連接,即,具有至少一個(gè)公共點(diǎn)。在圖8c示出的實(shí)例中,三個(gè)子圖與選定的分割面的關(guān)系分別為子圖1的各個(gè)頂 點(diǎn)位于選定分割面的上方,子圖2和子圖3的各個(gè)頂點(diǎn)處于選定分割圖的下方;與此同時(shí), 通過頂點(diǎn)鄰接圖,子圖2與另外兩個(gè)子圖頂點(diǎn)之間存在連接。因此,將子圖2與子圖3合并, 組成一個(gè)新的子圖。子圖2不與子圖1合并,因?yàn)樽訄D2與子圖1不在同側(cè)。這時(shí),圖8所 示模型可以分為如圖8d所示的兩個(gè)部分,并且這兩個(gè)部分均包括選定的分割面,可見圖8d 中的子圖1'對(duì)應(yīng)于子圖8c中的子圖1,而子圖2'對(duì)應(yīng)于圖8c中的子圖2和3組合得到 的子圖。2)該子圖的頂點(diǎn)分布在選定的候選分割面的兩側(cè),而且通過頂點(diǎn)鄰接圖或被分割以得到該子圖的輪廓圖,與屬于第一類的子圖相連接,則將該子圖和與其相連接的第一類 的各個(gè)子圖重新組合為一個(gè)新的子圖,將該子圖從第二類子圖中刪除。在如圖9c示出的實(shí)例中,三個(gè)子圖與候選分割面的關(guān)系為子圖1的頂點(diǎn)處于選 定的候選分割面上方,子圖2的頂點(diǎn)分布在選定的獲選分割面兩側(cè),子圖3的頂點(diǎn)處于選定 分割面的下方。與此同時(shí),子圖2的頂點(diǎn)通過頂點(diǎn)鄰接圖連接到子圖1和子圖3的頂點(diǎn)。因 此,子圖2將和子圖1、3合并,組成一個(gè)新的子圖。因此,圖9所示的三維模型利用選定的候 選分割面進(jìn)行分割處理后得到一個(gè)子圖,即,與輸入的待分割三維模型相應(yīng)的子圖。當(dāng)然, 也可以采用其他方式將圖9a-9c中示出的模型分割成至少兩個(gè)子圖,但這不在本發(fā)明討論 的范圍內(nèi),在此不再詳述。接下來,步驟S620依據(jù)步驟S610得到的各個(gè)子圖之間的關(guān)系,以及它們與選定的 候選分割面之間的位置關(guān)系,判斷各個(gè)子圖是否對(duì)應(yīng)于洞,然后處理洞以保持輸入模型的 形狀在分割后不發(fā)生改變。如果存在洞,則將洞和其最近的實(shí)體結(jié)合起來,使得分割結(jié)果中 不存在獨(dú)立的洞。為此,步驟S620的處理包括三個(gè)子步驟1、對(duì)每個(gè)子圖,根據(jù)其輪廓信 息,獲取它們?cè)谶x定的分割面上對(duì)應(yīng)的有界區(qū)域;2、對(duì)每個(gè)子圖,判斷其是否為洞;3、對(duì)被 判定為洞的子圖進(jìn)行處理。下面將依次介紹這三個(gè)子步驟。1)對(duì)前一步驟S610獲取的各個(gè)子圖,獲取它們?cè)谶x定的分割面上的各個(gè)區(qū)域。對(duì)每個(gè)子圖,根據(jù)其落在選定的候選分割面上的輪廓線信息,獲取封閉區(qū)域,即, 輪廓線閉合的區(qū)域。對(duì)于輪廓線不閉合的情況,例如可以采取本領(lǐng)域公知的頂點(diǎn)凸包方法 來獲取近似的封閉區(qū)域,或者采取現(xiàn)有的其他方法來獲取相對(duì)精確的封閉區(qū)域。具體細(xì)節(jié) 在此不再贅述。通過本步驟,例如對(duì)于圖IOb所示的四個(gè)子圖,可以獲取如圖IOc所示的四個(gè)封閉 區(qū)域。2)本子步驟利用在上一子步驟中獲得的子圖在選定的候選分割面上的各個(gè)封閉 區(qū)域之間的關(guān)系,以及各個(gè)子圖與選定的候選分割面之間的關(guān)系,實(shí)現(xiàn)洞的識(shí)別。在這個(gè)步 驟中,根據(jù)各個(gè)子圖落在選定的候選分割面上的封閉區(qū)域之間的關(guān)系,由外而內(nèi)逐一判斷。首先將最外面的封閉區(qū)域?qū)?yīng)的子圖判定為實(shí)體。此處,實(shí)體是區(qū)別于洞而言的。 這一規(guī)則是符合實(shí)際情況的。根據(jù)這一原則,在如圖IOb所示的實(shí)例中,子圖1對(duì)應(yīng)的部分 被判定為實(shí)體;對(duì)圖lib所示的兩個(gè)子圖而言,子圖1落在選定的候選分割面上的封閉區(qū)域 在子圖2相應(yīng)的封閉區(qū)域的外側(cè),因此子圖1對(duì)應(yīng)的部分被判定為是實(shí)體。下面介紹除了最外面的封閉區(qū)域?qū)?yīng)的子圖以外的其它子圖的判別方法。為使得 介紹清楚、簡潔,首先定義與某一個(gè)子圖最近的子圖這一概念。對(duì)某一個(gè)子圖A而言,其最 近的子圖B首先必須是一個(gè)實(shí)體,同時(shí)子圖B對(duì)應(yīng)的區(qū)域必須包含子圖A對(duì)應(yīng)的區(qū)域而且 是所有包含子圖A對(duì)應(yīng)區(qū)域的區(qū)域中最小的。如圖IOc所示,對(duì)于子圖3而言,子圖1就是 其對(duì)應(yīng)的最近的子圖,因?yàn)樽訄D1對(duì)應(yīng)的區(qū)域是包含子圖3對(duì)應(yīng)區(qū)域的所有區(qū)域中最小的, 而且子圖1對(duì)應(yīng)的部分是實(shí)體。同理,子圖1也是子圖2和4所對(duì)應(yīng)的最近的子圖。根據(jù)某一子圖和與其最近的子圖之間的關(guān)系,以及它們與選定的分割面的位置關(guān) 系,按照如下原則確定該子圖是否代表一個(gè)洞。 如果該子圖和與其最近的子圖的各個(gè)頂點(diǎn),相對(duì)于選定的候選分割面而言,處 于完全相反的位置,則該子圖被判定為實(shí)體。如圖IOc所示,除選定的候選分割面上的各個(gè)頂點(diǎn)外,子圖3的各個(gè)頂點(diǎn)完全處于選定分割面的前方,而子圖1的各個(gè)頂點(diǎn)完全處于選定 分割面的后方,因此子圖3對(duì)應(yīng)的部分被判斷為實(shí)體。 如果該子圖和與其最近的子圖的各個(gè)頂點(diǎn),相對(duì)于選定的分割面而言,處于同 一側(cè),則該子圖被判定為洞。如圖IOc所示,除選定的分割面上的各個(gè)頂點(diǎn)外,子圖2的各 個(gè)頂點(diǎn)位于選定的分割面的后方,同時(shí)子圖1的各個(gè)頂點(diǎn)也處于選定分割面的后方,因此 子圖2對(duì)應(yīng)的部分被判定為洞。同理,子圖4對(duì)應(yīng)的部分被也被判定為洞?!ひ陨蟽蓷l原則都不滿足時(shí),則應(yīng)用下面這條原則以選定的候選分割面為基準(zhǔn), 如果從該子圖處于該選定分割面上的頂點(diǎn)出發(fā),連接到其他有界平面上的有向線段與該選 定的候選分割面的法線向量處于選定的候選分割面的兩側(cè)時(shí),則該子圖對(duì)應(yīng)的部分被判定 為洞,否則被判定為實(shí)體。此處的連接是指通過輪廓線相連,即,由屬于該子圖且位于選定 的候選分割面上的頂點(diǎn)出發(fā),到其他有界平面上的頂點(diǎn)為止的連線。在此,默認(rèn)有界平面的 法線方向指向模型表面的外側(cè)。如圖lib所示,從子圖2處于選定分割面上的頂點(diǎn)出發(fā),連 接到其他有界平面上的輪廓線(以點(diǎn)劃線表示)和選定的分割面的法線向量(以實(shí)線表 示)在該選定的候選分割面的兩側(cè),即,一個(gè)處于該選定的候選分割面下側(cè),一個(gè)位于其上 側(cè),因此子圖2對(duì)應(yīng)的部分被判定為洞。3)在對(duì)洞的處理的子步驟中,為保持輸入三維模型的形狀,需要將各個(gè)洞和與其 最近的子圖組合在一起,使得分割結(jié)果中不存在獨(dú)立的洞。如圖IOc所示,子圖2和子圖4 將被組合到子圖1中去,成為一個(gè)新的實(shí)體。圖lib中所示的子圖2將被組合到子圖1中 去,成為一個(gè)新的實(shí)體。然后,將只包含在洞內(nèi)的有界平面設(shè)置為非候選分割面,這樣做可以防止洞被切 分,同時(shí)可以減少模型分割的復(fù)雜度和處理負(fù)荷。在圖6的流程圖中的步驟S630中執(zhí)行參數(shù)化控制處理。根據(jù)應(yīng)用的不同,這一步 驟可設(shè)置參數(shù),對(duì)分割結(jié)果進(jìn)行控制,例如使得只有小的部分或者只有大的部分才能從輸 入的三維模型中被分割出來。例如,為判斷某一子圖A是否能被分割出來,以子圖A和與其 最近的子圖在選定的候選分割面上相應(yīng)的封閉區(qū)域的面積之間的比值為參數(shù),如果該比值 小于某一預(yù)先設(shè)定的閾值,則子圖A能被分割出來,否則子圖A需要和與其最近的子圖組合 稱為一個(gè)新的子圖,而不能作為獨(dú)立的部分被分割出來。下面,通過一個(gè)實(shí)例來具體說明。如圖12所示,實(shí)體1在選定的候選分割面上的 對(duì)應(yīng)封閉區(qū)域的面積計(jì)算為Areal = 392. 994,而實(shí)體2在分割面上的對(duì)應(yīng)封閉區(qū)域的面 積為Area2 = 119. 56,則Area2/Areal = 0. 3。當(dāng)用戶設(shè)定的閾值小于0. 3時(shí),實(shí)體2就不 能被分割出來,而同實(shí)體1組合在一起成為一個(gè)物體;如果用戶設(shè)定的閾值大于或等于0. 3 時(shí),實(shí)體2與實(shí)體1分別作為兩個(gè)物體被分割出來。需要注意,圖12中的模型與圖10中的 模型對(duì)應(yīng)。上面提到,在圖10中,兩個(gè)子圖2和4都被判定為洞且與子圖1組合。因此,在 圖12中的實(shí)體1是指由圖10中子圖1+2+4構(gòu)成的新的實(shí)體。本領(lǐng)域技術(shù)人員理解,還可以設(shè)置其他參數(shù)來表示三維模型中物體的“大”和 “小”。例如,可以通過對(duì)子圖所對(duì)應(yīng)的部分的體積大小之間的比值來確定相應(yīng)的部分能否 從輸入三維模型中被分割出來。步驟S630中的參數(shù)化控制處理并不是必須的。這種處理是為了增強(qiáng)模型分割的 靈活性,因此屬于一種優(yōu)化方案。例如,通過設(shè)置相關(guān)參數(shù)和閾值,可以控制三維模型分割的“粒度”,即,從三維模型中分割出來的子模型是多一些還是少一些。顯然,這可以根據(jù)實(shí) 際需要進(jìn)行相應(yīng)調(diào)整。接著,在圖6的流程圖中的步驟S640判斷通過利用第i個(gè)選定的候選分割面進(jìn)行 上述的分割處理后所得到的子圖的數(shù)目是否大于“ 1 ”,即,是否將輸入三維模型分割成至少 兩個(gè)子圖。如果步驟S640的判斷結(jié)果為“是”,則在步驟S650輸出分割得到的子圖,并且 流程回到圖5中的步驟S520。如果步驟S640的判斷結(jié)果為“否”,即,通過利用第i個(gè)選定 的候選分割面進(jìn)行上述的分割處理后所得到的子圖的數(shù)目不大于“ 1”(等于1),則令i = i+Ι (步驟S660),并利用第(i+Ι)個(gè)選定的候選分割面,重復(fù)執(zhí)行步驟S610-S640的處理。 如果利用了 η個(gè)候選分割面中的所有分割面進(jìn)行分割,都沒有將三維模型分割成至少兩個(gè) 子圖,g卩,都只是將輸入三維模型分割成一個(gè)子圖(步驟S680),則流程也回到圖5中的步驟 S520。例如,圖IOa-IOc中示出的情形就是將輸入三維模型分割成一個(gè)子圖,S卩,與該三維 模型本身對(duì)應(yīng)的子圖。從圖6可看出,只要η個(gè)候選分割面中任意一個(gè)分割面可將三維模 型分割成至少兩個(gè)互相不重疊的子圖,就進(jìn)入圖5中的步驟S520判斷是否針對(duì)這些子圖的 分割結(jié)果終止分割,而不再利用η個(gè)候選分割面中的其他分割面分別對(duì)三維模型進(jìn)行分割 處理。本領(lǐng)域技術(shù)人員理解,作為可替選方案,也可以依次利用η個(gè)候選分割面中的每一個(gè) 分割面都來進(jìn)行如上所述的分割輸入三維模型的處理,所得到的與各個(gè)候選分割面對(duì)應(yīng)的 各種分割結(jié)果可根據(jù)實(shí)際需要進(jìn)行選擇使用。此外,在上述的利用候選分割面對(duì)三維模型進(jìn)行分割的處理中,也可以不查找候 選分割面,而是直接應(yīng)用在前面的處理中檢測到的所有有界平面作為分割面來對(duì)三維模型 的輪廓圖進(jìn)行分割。其處理方式以上述利用候選分割面的分割處理方式類似,在此不再贅 述。再回到圖5的流程,在步驟S520,對(duì)圖6中步驟S650或S680的處理獲得的子圖進(jìn) 行終止條件的判斷,以確定該子圖是否需要繼續(xù)分割,即,是否滿足終止分割的條件。可采 取如下準(zhǔn)則進(jìn)行判斷,如果某一子圖滿足下面規(guī)則的任意一項(xiàng),則該子圖不需要繼續(xù)分割。 該子圖的頂點(diǎn)數(shù)目小于8。因?yàn)槿我馊S物體至少要包含4個(gè)不共面的頂點(diǎn)。 例如三棱錐不能被分割。在此,數(shù)字“4”是模型可分割所允許的最小數(shù)字,其可以根據(jù)實(shí)際 情況進(jìn)行修改。 該子圖的面的數(shù)目小于6。因?yàn)槿我馊S物體至少要包含4個(gè)不同的平面。例 如三棱錐不能被分割。數(shù)字“4”是模型可分割所允許的最小數(shù)字,其可以根據(jù)實(shí)際情況進(jìn) 行修改。 該子圖的所有有界平面中,不存在候選分割面。如圖7中的子圖1含有的六個(gè) 有界平面中,不存在候選分割面。同理如圖7所示的子圖2,如圖8所示的子圖1均不含有 候選分割面。 雖然該子圖含有候選分割面,但所有候選分割面都不能將該子圖分割為兩個(gè)或 更多個(gè)部分。如圖11的模型中,子圖1雖然含有候選分割面,但是通過該分割面不能將該 子圖分割為兩個(gè)或多個(gè)部分,則該模型亦不能繼續(xù)分割。如果步驟S520的判斷確定需要對(duì)某子圖進(jìn)行繼續(xù)分割,則應(yīng)用該子圖含有的候 選分割面對(duì)其繼續(xù)分割(S540),S卩,以該子圖含有的候選分割面作為選定的候選分割面,對(duì) 該子圖所對(duì)應(yīng)的輪廓圖進(jìn)行分割,直到將與該子圖所對(duì)應(yīng)的輪廓圖分割為至少兩個(gè)相互不重疊的子圖。對(duì)子圖進(jìn)行接續(xù)分割的具體處理方式與上述參照?qǐng)D5-6描述的分割處理類 似,在此不再贅述。上面已經(jīng)結(jié)合各附圖對(duì)根據(jù)本發(fā)明的實(shí)施例的對(duì)三維模型進(jìn)行分割的方法進(jìn)行 了詳細(xì)描述。作為可替選的實(shí)施方式,在示出了根據(jù)本發(fā)明的實(shí)施例的用于對(duì)三維模型進(jìn) 行分割的方法的流程簡圖的圖1中執(zhí)行有界平面生成步驟Slio圖之前,還可以執(zhí)行三維模 型預(yù)分割步驟。該步驟的目的在于將輸入的由三角形網(wǎng)格描述的三維模型分割為若干個(gè)獨(dú) 立的、互不相連的部分。該步驟的處理尤其適用于一個(gè)場景中擺放著多個(gè)獨(dú)立的物體的情 況。在該步驟的處理中,首先根據(jù)輸入三維模型的三角形網(wǎng)格數(shù)據(jù),構(gòu)建頂點(diǎn)鄰接圖。然 后,判斷頂點(diǎn)鄰接圖是否是連通的如果頂點(diǎn)鄰接圖中的任意一對(duì)節(jié)點(diǎn)之間存在路徑相連, 則該圖是連通的,否則不連通。這里的路徑通常是指由一條邊或多條邊組成的。如果頂點(diǎn) 鄰接圖不是連通的,即鄰接圖由若干個(gè)互不連接的、分離的子圖組成,則對(duì)應(yīng)于這些子圖, 輸入三維模型可分割為若干互不連接的子模型。如果頂點(diǎn)鄰接圖是連通的,則輸入的待分 割三維模型在預(yù)分割步驟中不被分割,仍是一個(gè)三維模型。圖2a_2c是示出了在根據(jù)本發(fā)明的實(shí)施例的三維模型分割方法中,將待分割三維 模型預(yù)先分割為若干個(gè)相互分離的子模型的一個(gè)實(shí)例的示意性簡圖。圖2a表示輸入的待 分割三維模型,圖2b表示所創(chuàng)建的頂點(diǎn)鄰接圖,可見頂點(diǎn)鄰接圖由四個(gè)互不相連的、分離 的子圖組成。相應(yīng)地,圖2a的模型可以被分割成如圖2c所示的4個(gè)獨(dú)立的子模型。作為可替選方案,也可以采用三角形鄰接圖來實(shí)現(xiàn)上述的模型預(yù)分割的處理。當(dāng) 三角形鄰接圖不連通時(shí),可以將輸入的三維模型分割為若干個(gè)獨(dú)立的子模型。從上面對(duì)根 據(jù)本發(fā)明的具體實(shí)施例的描述可知,待分割三維模型包含兩部分基本數(shù)據(jù)模型頂點(diǎn)以及 組成模型表面的三角形。如果將三角形鄰接圖分割成幾個(gè)分離的子圖,也即將組成三維模 型表面的三角形進(jìn)行劃分,則可以實(shí)現(xiàn)模型頂點(diǎn)的劃分;如果將頂點(diǎn)鄰接圖分割為幾個(gè)分 離的子圖,也即將模型頂點(diǎn)進(jìn)行劃分,則可以實(shí)現(xiàn)組成輸入模型表面的三角形的劃分。因 此,采用三角形鄰接圖來實(shí)現(xiàn)模型預(yù)分割處理與上述的采用頂點(diǎn)鄰接圖來實(shí)現(xiàn)模型預(yù)分割 處理是類似的,在此不再贅述。如果輸入的模型經(jīng)過預(yù)分割被分割成多個(gè)三維子模型,則對(duì)每個(gè)分割得到的三維 子模型進(jìn)行如上所述的處理。容易理解,這種預(yù)分割處理有助于降低后續(xù)處理的計(jì)算量和 復(fù)雜度,因此是一種優(yōu)化處理。如果不執(zhí)行模型預(yù)分割的處理,也并不影響根據(jù)本發(fā)明的三 維模型的分割的實(shí)現(xiàn)。作為另一個(gè)可替換實(shí)施方式,在圖1的流程圖的步驟S130之后,還可以執(zhí)行三維 模型的輪廓圖重建處理。在該輪廓圖重建處理中,根據(jù)從步驟S120獲得的輸入三維模型的 輪廓圖,以及該輪廓圖含有的有界平面的信息,對(duì)通過利用選定的候選分割面對(duì)三維模型 分割得到的各個(gè)子圖進(jìn)行處理,從而重建出構(gòu)成待分割三維模型的相應(yīng)的立體部件,并以 三角形網(wǎng)格的形式表達(dá)之。如上所述,在利用選定的候選分割面進(jìn)行模型分割的過程中,選 定的候選分割面以及其它的部分有界平面會(huì)發(fā)生變化,這些有界平面需要重新三角化才能 確保三維模型的封閉性。與此同時(shí),沒有發(fā)生變化的有界平面的數(shù)據(jù)可以直接使用,從而減 少重建的處理負(fù)荷。此外,輸入三維模型的原始的三角形網(wǎng)格數(shù)據(jù)有助于矯正新生成的三 角形的方向。具體而言,對(duì)于在分割過程中產(chǎn)生變化的有界平面,可采取與前述的對(duì)判定為洞的子圖進(jìn)行處理類似的處理方法,得到該有界平面上的封閉區(qū)域并以多邊形表達(dá)之。然后 可以采用現(xiàn)有的各種多邊形三角化技術(shù),得到一系列三角形。例如,可以采用上述[非專利 文獻(xiàn)6]中介紹的方法,該方法可實(shí)現(xiàn)簡單多邊形(包括凹多邊形和凸多邊形)和復(fù)雜多 邊形(含有洞的多邊形)的三角化。在應(yīng)用該方法之前,首先需要判斷各個(gè)多邊形的方向 以及多邊形之間的包含關(guān)系,從而適當(dāng)組織各個(gè)多邊形使得最外圍的多邊形的方向?yàn)槟鏁r(shí) 針,而內(nèi)部的多邊形的方向?yàn)轫槙r(shí)針。例如,可以利用上述[非專利文獻(xiàn)_9]中公開的方法 來判斷多邊形的方向。在對(duì)所有發(fā)生變化的有界平面完成重建處理后,根據(jù)三維模型的原 始三角形網(wǎng)格數(shù)據(jù),對(duì)新產(chǎn)生的三角形的方向進(jìn)行矯正,使得所有三角形的法線方向指向 三維模型表面的外側(cè)。經(jīng)過三維模型的輪廓圖重建處理,可得到構(gòu)成輸入的待分割三維模型的、由三角 形網(wǎng)格表達(dá)的一系列封閉的立體部件。在此需要說明,雖然為了更為清楚地描述根據(jù)本發(fā)明實(shí)施例的分割三維模型的方 法,其中各個(gè)處理步驟是結(jié)合不同附圖中不同模型實(shí)例分別進(jìn)行說明的,但是,本領(lǐng)域技術(shù) 人員了解,對(duì)上述各附圖中提及的每一種模型,都能夠通過根據(jù)本發(fā)明的這種分割三維模 型的方法來進(jìn)行分割處理。其中的細(xì)節(jié)不再贅述。根據(jù)本發(fā)明的其他實(shí)施例,還提供了一種用于對(duì)三維模型進(jìn)行分割的裝置。圖13 是示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例用于分割三維模型的裝置的示意框圖。如圖所示,該用 于分割三維模型的裝置1000包括有界平面生成單元1200,用于根據(jù)輸入的三維模型的 三角形網(wǎng)格數(shù)據(jù)對(duì)三維模型中包含的所有三角形進(jìn)行處理,以生成至少一個(gè)適用于對(duì)三維 模型進(jìn)行分割的有界平面;輪廓圖提取單元1300,用于通過所生成的有界平面來提取出三 維模型的輪廓圖;輪廓圖分割單元1400,用于根據(jù)所生成的有界平面的信息以及三維模型 的頂點(diǎn)鄰接圖的信息,將所提取出的輪廓圖分割成一個(gè)子圖或者至少兩個(gè)相互不重疊的子 圖。作為可替選實(shí)施方式,圖13中的用于分割三維模型的裝置1000還可以包括預(yù)分 割單元1100,用于根據(jù)輸入的三維模型的三角形網(wǎng)格數(shù)據(jù)中所包括的三角形數(shù)據(jù)和頂點(diǎn)數(shù) 據(jù),將該輸入三維模型預(yù)分割成一個(gè)子模型或者至少兩個(gè)相互分離的子模型。有界平面生 成單元1200、輪廓圖提取單元1300和輪廓圖分割單元1400對(duì)于預(yù)分割單元1100生成的一 個(gè)子模型或者至少兩個(gè)相互分離的子模型中的每一個(gè)執(zhí)行相應(yīng)處理,以便將每一個(gè)子模型 都分割成一個(gè)子圖或者至少兩個(gè)相互不重疊的子圖。作為另一種可替選實(shí)施方式,圖13中的用于分割三維模型的裝置1000還可以包 括模型重建單元1500,用于根據(jù)所分割成的一個(gè)子圖或者至少兩個(gè)相互不重疊的子圖以及 三維模型的三角形網(wǎng)格數(shù)據(jù)來進(jìn)行三角化處理,以便重建組成該三維模型的、由三角形網(wǎng) 格來表達(dá)的一系列立體部件。本領(lǐng)域技術(shù)人員了解,如圖13中示出的裝置1000所包括的有界平面生成單元 1200,輪廓圖提取單元1300,輪廓圖分割單元1400,以及預(yù)分割單元1100和模型重建單元 1500可以被配置成執(zhí)行上面結(jié)合圖1,5,6描述的各種處理,以及雖然沒有在這些附圖中示 出但是已經(jīng)在上面的各種具體實(shí)例中充分描述的用于分割三維模型的方法。上述裝置中各個(gè)組成單元可通過軟件、硬件或其組合的方式進(jìn)行配置。配置可使 用的具體手段或方式為本領(lǐng)域技術(shù)人員所熟知,在此不再贅述。
本發(fā)明的其他實(shí)施例還提出了一種圖像處理系統(tǒng),其配備有根據(jù)上述圖13示出 的根據(jù)本發(fā)明的實(shí)施例的用于對(duì)三維模型進(jìn)行分割的裝置,因此可用于實(shí)現(xiàn)上述的根據(jù)本 發(fā)明的實(shí)施例的對(duì)三維模型進(jìn)行分割的方法。這種圖像處理系統(tǒng)例如可以是目標(biāo)檢測系統(tǒng)、局部匹配系統(tǒng)、模型檢索系統(tǒng),等寸。此外,根據(jù)本發(fā)明上述實(shí)施例的用于對(duì)三維模型進(jìn)行分割的方法可以通過存儲(chǔ)有 機(jī)器可讀取的指令代碼的程序產(chǎn)品進(jìn)來實(shí)現(xiàn)。這些指令代碼由機(jī)器例如計(jì)算機(jī)讀取并執(zhí)行 時(shí),可執(zhí)行根據(jù)本發(fā)明上述實(shí)施例的對(duì)三維模型進(jìn)行分割的方法的各個(gè)操作過程和步驟。 該程序產(chǎn)品可以具有任意的表現(xiàn)形式,例如,目標(biāo)程序、解釋器執(zhí)行的程序或者提供給操作 系統(tǒng)的腳本程序等。相應(yīng)地,用于承載上述存儲(chǔ)有機(jī)器可讀取的指令代碼的程序產(chǎn)品的存儲(chǔ)介質(zhì)也包 括在本發(fā)明的公開中。所述存儲(chǔ)介質(zhì)包括但不限于軟盤、光盤、磁光盤、存儲(chǔ)卡、存儲(chǔ)棒,等寸。(附記1)一種用于對(duì)三維模型進(jìn)行分割的方法,包括有界平面生成步驟,用于根據(jù)輸入的三維模型的三角形網(wǎng)格數(shù)據(jù)對(duì)所述三維模型 中包含的所有三角形進(jìn)行處理,以生成至少一個(gè)適用于對(duì)所述三維模型進(jìn)行分割的有界平輪廓圖提取步驟,用于通過所述生成的有界平面來提取出所述三維模型的輪廓 圖;和輪廓圖分割步驟,用于根據(jù)所述生成的有界平面的信息以及所述三維模型的頂點(diǎn) 鄰接圖的信息,將所述提取出的輪廓圖分割成滿足預(yù)定條件的一個(gè)子圖或者至少兩個(gè)相互 不重疊的子圖,其中,所述頂點(diǎn)鄰接圖通過以下方式構(gòu)建根據(jù)所述三維模型的三角形網(wǎng)格數(shù)據(jù),以三維模型的頂點(diǎn)為節(jié)點(diǎn),在被一個(gè)或多 個(gè)三角形所共有的每兩個(gè)頂點(diǎn)之間添加一條邊,從而構(gòu)建頂點(diǎn)鄰接圖。(附記2)如附記1所述的方法,還包括在所述有界平面生成步驟之前的預(yù)分割步 驟,用于根據(jù)輸入的三維模型的三角形網(wǎng)格數(shù)據(jù)中所包括的三角形數(shù)據(jù)和頂點(diǎn)數(shù)據(jù),將該 輸入三維模型預(yù)分割成一個(gè)子模型或者至少兩個(gè)相互分離的子模型,其中,所述方法對(duì)于 所述子模型中的每一個(gè)子模型分別執(zhí)行所述有界平面生成步驟、輪廓圖提取步驟和輪廓圖 分割步驟,以便將每一個(gè)子模型都分割成滿足預(yù)定條件的一個(gè)子圖或者至少兩個(gè)相互不重 疊的子圖。(附記3)如附記2所述的方法,其中,所述預(yù)分割步驟包括根據(jù)所述三維模型的三角形網(wǎng)格數(shù)據(jù),構(gòu)建頂點(diǎn)鄰接圖;確定頂點(diǎn)鄰接圖是否為連通的,其中,如果頂點(diǎn)鄰接圖中的任意一對(duì)頂點(diǎn)之間都 存在路徑相連,則該圖是連通的,否則不連通;和如果確定頂點(diǎn)鄰接圖不是連通的,則對(duì)應(yīng)于頂點(diǎn)鄰接圖中的互不連接的子圖來將 三維模型分割為至少兩個(gè)相互分離的子模型。(附記4):如附記2所述的方法,其中,所述預(yù)分割步驟包括根據(jù)所述三維模型的三角形網(wǎng)格數(shù)據(jù),構(gòu)建三角形鄰接圖;確定三角形鄰接圖是否為連通的,其中,如果三角形鄰接圖中的任意一對(duì)三角形之間都存在路徑相連則該圖是連通的,否則不連通;如果確定三角形鄰接圖不是連通的,則對(duì)應(yīng)于三角形鄰接圖中的互不連接的子圖 來將三維模型分割為至少兩個(gè)相互分離的子模型;其中,所述三角形鄰接圖通過以下方式構(gòu)建根據(jù)所述三維模型的三角形網(wǎng)格數(shù)據(jù),以三維模型的中的三角形為節(jié)點(diǎn),在擁有 公共點(diǎn)的每兩個(gè)三角形之間添加邊,從而構(gòu)建三角形鄰接圖。(附記5):如附記1-4中任一項(xiàng)所述的方法,還包括在所述輪廓圖分割步驟之后的 模型重建步驟,用于根據(jù)所述分割成的一個(gè)子圖或者至少兩個(gè)相互不重疊的子圖以及所述 三維模型的三角形網(wǎng)格數(shù)據(jù)來進(jìn)行三角化處理,以便重建組成所述三維模型的、由三角形 網(wǎng)格來表達(dá)的一系列立體部件。(附記6)根據(jù)附記1-5中任一項(xiàng)所述的方法,其中,所述有界平面生成步驟包 括將所述三維模型中包含的所有三角形中的每一個(gè)三角形作為子平面,使得滿足聚 合條件的子平面聚合成一個(gè)新的子平面,直到所有的子平面不能再聚合為止,從而生成廣 義平面;對(duì)所述廣義平面中的每一個(gè)進(jìn)行如下處理,以生成至少一個(gè)適用于對(duì)所述三維模 型進(jìn)行分割的有界平面;對(duì)位于該廣義平面上的三角形,創(chuàng)建三角形鄰接圖,如果在該鄰接圖中,該廣義平 面上的三角形可被劃分到若干個(gè)分離的子平面中,且每個(gè)子平面包含多個(gè)相互連接的三角 形時(shí),則將該廣義平面劃分為所述若干個(gè)分離的子平面,其中,所述三角形鄰接圖通過以下 方式構(gòu)建根據(jù)所述三維模型的三角形網(wǎng)格數(shù)據(jù),以三維模型的中的三角形為節(jié)點(diǎn),在擁有 公共點(diǎn)的兩個(gè)三角形之間添加邊,從而構(gòu)建三角形鄰接圖,如果在將該廣義平面劃分成的所述若干個(gè)分離的子平面中的兩個(gè)或更多個(gè)子平 面同時(shí)與另外的同一個(gè)平面相互連接,則將這些子平面組合起來作為一個(gè)組合的有界平 面,由所述組合的有界平面以及將該廣義平面劃分成的所述若干個(gè)分離的子平面中的無需 組合的有界平面共同組成所述的適用于對(duì)所述三維模型進(jìn)行分割的有界平面,其中,當(dāng)所 述兩個(gè)或更多個(gè)子平面分別與所述另外的同一個(gè)平面存在至少一個(gè)公共點(diǎn)時(shí),該兩個(gè)或多 個(gè)子平面被認(rèn)為同時(shí)與該另外的同一個(gè)平面相互連接,以及其中,在頂點(diǎn)鄰接圖中,如果連 接到某個(gè)子平面上的頂點(diǎn)處于該子平面的同一側(cè),則將該子平面作為是所述的無需組合的 有界平面中的獨(dú)立的有界平面。(附記7)根據(jù)附記6中所述的方法,其中,子平面可聚合的條件包括所述子平面的法線方向相同或相反;以及所述子平面的頂點(diǎn)處于同一個(gè)平面上,其中,以與子平面相關(guān)的三角形的法線方向作為該子平面的法線方向。(附記8)根據(jù)附記1-7中任一項(xiàng)中所述的方法,其中輪廓圖提取步驟通過以下方 式提取出所述三維模型的輪廓圖以所述三維模型的頂點(diǎn)作為輪廓圖的頂點(diǎn),各個(gè)頂點(diǎn)之間不存在連接;對(duì)于有界平面生成步驟所生成的每個(gè)有界平面,從有界平面生成步驟所生成的有界平面中查找與之相連接的有界平面,獲取處于該有界平面和與之相連接的有界平面的邊 界上的頂點(diǎn),并將各頂點(diǎn)相互連接以得到若干線段;和在所得到的若干線段之中選擇互不重疊的、與有界平面的內(nèi)部邊不同的線段作為 輪廓線,以得到所述三維模型的輪廓圖,其中,每條輪廓線至少要連接到兩個(gè)不同的有界平 面,而且在每一個(gè)有界平面內(nèi),都存在一個(gè)三角形使得它的某一條邊包含該輪廓線,以及其 中,內(nèi)部邊僅在一個(gè)有界平面內(nèi),或者被同一有界平面上的兩個(gè)或多個(gè)三角形所共有。(附記9)根據(jù)附記1-8中任一項(xiàng)中所述的方法,其中所述輪廓圖分割步驟包括候選分割面檢測子步驟,用于從所生成的有界平面中,查找所有候選分割面,其 中,對(duì)于任意一個(gè)候選分割面,其頂點(diǎn)的數(shù)目大于等于4,并且所述三維模型的頂點(diǎn)分布在 該候選分割面的兩側(cè);模型分割子步驟,用于逐一利用所檢測到的候選分割面中的分割面作為選定的候 選分割面來對(duì)所述輪廓圖進(jìn)行分割,直到將所述輪廓圖分割為一個(gè)子圖或至少兩個(gè)相互不 重疊的子圖;和終止條件判斷子步驟,對(duì)模型分割子步驟得到的各個(gè)子圖,判斷其是否需要繼續(xù) 分割,如果需要,則以該子圖含有的候選分割面作為選定的候選分割面,對(duì)該子圖所對(duì)應(yīng)的 輪廓圖進(jìn)行分割,直到將與該子圖所對(duì)應(yīng)的輪廓圖分割為至少兩個(gè)相互不重疊的子圖。(附記10)根據(jù)附記9中所述的方法,其中所述模型分割子步驟包括通過選定的 候選分割面來執(zhí)行以下處理通過該選定的候選分割面將輪廓圖分割為一個(gè)子圖或至少兩個(gè)相互不重疊的子 圖,使得所有子圖都包含該選定的候選分割面;將所得到的子圖中被判斷為洞的子圖和與該子圖的最近的、作為實(shí)體的子圖結(jié)合 起來,以便獲得新的實(shí)體;和對(duì)分割得到的各個(gè)實(shí)體進(jìn)行處理,以便確定將哪些實(shí)體作為分割的結(jié)果。(附記11)根據(jù)附記10中所述的方法,其中,所述的通過所述選定的候選分割面 將輪廓圖分割為一個(gè)子圖或至少兩個(gè)相互不重疊的子圖的處理包括將位于所述選定的候選分割面上的輪廓線刪除,以獲得修正的輪廓圖;根據(jù)修正的輪廓圖的頂點(diǎn)之間的連接關(guān)系,將修正后的輪廓圖分割為一個(gè)子圖或 至少兩個(gè)分離的的子圖;和對(duì)所得到的各個(gè)不連接的子圖進(jìn)行再組織,從而使得所有子圖都含有所述選定候 選分割面,其中,對(duì)于不含有所述選定的候選分割面的子圖,如果該子圖的各個(gè)頂點(diǎn)完全處 于選定的候選分割面一側(cè),通過頂點(diǎn)鄰接圖或被分割以得到該子圖的輪廓圖,將該子圖和 與其相連接的且處于同側(cè)的子圖重新組合得到一個(gè)新的子圖,如果該子圖的頂點(diǎn)分布在選 定的候選分割面的兩側(cè),而且通過頂點(diǎn)鄰接圖或被分割以得到該子圖的輪廓圖與含有所述 選定的候選分割面的子圖相連接,則將該子圖和與其相連接的子圖重新組合為一個(gè)新的子 圖,由未經(jīng)重新組合的子圖以及由重新組合得到的新子圖組成從輪廓圖分割得到的所述一 個(gè)子圖或至少兩個(gè)相互不重疊的子圖。(附記12)根據(jù)附記10中所述的方法,其中,所述的對(duì)被判斷為洞的子圖進(jìn)行處 理以獲得新的實(shí)體的處理包括對(duì)于每個(gè)子圖,根據(jù)其輪廓線信息,獲取其在選定的候選分割面上對(duì)應(yīng)的封閉區(qū)域,利用所獲取的、該子圖在選定的候選分割面上的各個(gè)封閉區(qū)域之間的關(guān)系,以及該子圖 與選定的候選分割面的關(guān)系,判斷該子圖是否為洞;和對(duì)被判斷為洞的子圖進(jìn)行處理,以便獲得新的實(shí)體。(附記13)根據(jù)附記12中所述的方法,其中判斷子圖是否為洞的處理包括將處于最外面的封閉區(qū)域所對(duì)應(yīng)的子圖判斷為實(shí)體;根據(jù)除了處于最外面的封閉區(qū)域所對(duì)應(yīng)的子圖之外的其他子圖和與所述其他子 圖最近的子圖之間的相互關(guān)系,按照如下原則分別判斷其他子圖是否為洞1)若該子圖和與其最近的子圖,完全處于選定的候選分割面的同一側(cè),則判斷該 子圖為洞;2)若該子圖和與其最近的子圖,處于選定的候選分割面的完全相反的一側(cè),則判 斷該子圖為實(shí)體;3)以選定的候選分割面為基準(zhǔn),如果從屬于該子圖且落在該選定的候選分割面上 的頂點(diǎn)出發(fā)連接到其它有界平面的有向線段以及該選定的候選分割面的法線向量位于該 選定的候選分割面的兩側(cè)時(shí),判斷該子圖為洞,否則判斷該子圖為實(shí)體;其中,對(duì)某一個(gè)子圖,與其最近的子圖是一個(gè)實(shí)體,同時(shí)該最近的子圖對(duì)應(yīng)的封閉 區(qū)域包含該子圖相應(yīng)的封閉區(qū)域而且是包含該子圖相應(yīng)的所有封閉區(qū)域中最小的。(附記14)根據(jù)附記13中所述的方法,還包括將被判斷為洞的子圖和與該子圖最 近的子圖組合在一起,使得分割得到的子圖中不存在獨(dú)立的洞,并將只包含在該洞內(nèi)的有 界平面設(shè)置為非候選分割面。(附記15)根據(jù)附記10中所述的方法,其中,所述的確定將哪些實(shí)體作為分割的 結(jié)果的處理通過預(yù)先設(shè)置的參數(shù)對(duì)分割結(jié)果進(jìn)行控制,使得只有滿足預(yù)定條件的部分才能 從三維模型中被分割出來。(附記16)根據(jù)附記15中所述的方法,其中,所述預(yù)先設(shè)置的參數(shù)是子圖和與 其最近的子圖在選定的候選分割面上相應(yīng)區(qū)域面積的比值,如果該比值小于預(yù)先設(shè)定的閾 值,則該子圖能被分割出來,否則,該子圖和與其最近的子圖被組合稱為一個(gè)新的子圖,而 不能作為獨(dú)立的部分被分割出來。(附記17)根據(jù)附記9中所述的方法,其中,所述終止條件判斷子步驟在某一個(gè)子 圖滿足以下任意一個(gè)條件時(shí)判斷不需要對(duì)該子圖繼續(xù)進(jìn)行分割該子圖的頂點(diǎn)數(shù)量小于預(yù)定的第一閾值;該子圖含有的有界平面數(shù)量小于預(yù)定的第二閾值;該子圖含有的所有有界平面中不存在候選分割面;和該子圖中不存在可將與該子圖對(duì)應(yīng)的輪廓圖分割為至少兩個(gè)子圖的候選分割面。(附記18)根據(jù)附記17中所述的方法,其中,所述第一閾值為8,所述第二閾值為 6。(附記19)一種用于對(duì)三維模型進(jìn)行分割的裝置,包括有界平面生成單元,用于根據(jù)輸入的三維模型的三角形網(wǎng)格數(shù)據(jù)對(duì)所述三維模型 中包含的所有三角形進(jìn)行處理,以生成至少一個(gè)適用于對(duì)所述三維模型進(jìn)行分割的有界平 輪廓圖提取單元,用于通過所述生成的有界平面來提取出所述三維模型的輪廓圖;輪廓圖分割單元,用于根據(jù)所述生成的有界平面的信息以及所述三維模型的頂點(diǎn) 鄰接圖的信息,將所述提取出的輪廓圖分割成滿足預(yù)定條件的一個(gè)子圖或者至少兩個(gè)相互 不重疊的子圖,其中,所述頂點(diǎn)鄰接圖通過以下方式構(gòu)建根據(jù)所述三維模型的三角形網(wǎng)格數(shù)據(jù),以三維模型的頂點(diǎn)為節(jié)點(diǎn),在被一個(gè)或多 個(gè)三角形所共有的每兩個(gè)頂點(diǎn)之間添加一條邊,從而構(gòu)建頂點(diǎn)鄰接圖。(附記20)如附記19所述的裝置,還包括預(yù)分割單元,用于根據(jù)輸入的三維模型 的三角形網(wǎng)格數(shù)據(jù)中所包括的三角形數(shù)據(jù)和頂點(diǎn)數(shù)據(jù),將該輸入三維模型預(yù)分割成一個(gè)子 模型或者至少兩個(gè)相互分離的子模型,其中,所述有界平面生成單元、輪廓圖提取單元和輪 廓圖分割單元被配置成對(duì)于所述一個(gè)子模型或者至少兩個(gè)相互分離的子模型中的每一個(gè) 執(zhí)行處理,以便將每一個(gè)子模型都分割成滿足預(yù)定條件的一個(gè)子圖或者至少兩個(gè)相互不重 疊的子圖。(附記21)如附記19或20所述的裝置,還包括模型重建單元,用于根據(jù)所述分割 成的一個(gè)子圖或者至少兩個(gè)相互不重疊的子圖以及所述三維模型的三角形網(wǎng)格數(shù)據(jù)來進(jìn) 行三角化處理,以便重建組成所述三維模型的、由三角形網(wǎng)格來表達(dá)的一系列立體部件。(附記22)根據(jù)附記19-21中任一項(xiàng)所述的裝置,其中,所述有界平面生成單元被 配置成將所述三維模型中包含的所有三角形中的每一個(gè)三角形作為子平面,使得滿足聚 合條件的子平面聚合成一個(gè)新的子平面,直到所有的子平面不能再聚合為止,從而生成廣 義平面;對(duì)所述廣義平面中的每一個(gè)進(jìn)行如下處理,以生成至少一個(gè)適用于對(duì)所述三維模 型進(jìn)行分割的有界平面;對(duì)位于該廣義平面上的三角形,創(chuàng)建三角形鄰接圖,如果在該鄰接圖中,該廣義平 面上的三角形可被劃分到若干個(gè)分離的子平面中,且每個(gè)子平面包含多個(gè)相互連接的三角 形時(shí),則將該廣義平面劃分為所述若干個(gè)分離的子平面,其中,所述三角形鄰接圖通過以下 方式構(gòu)建根據(jù)所述三維模型的三角形網(wǎng)格數(shù)據(jù),以三維模型的中的三角形為節(jié)點(diǎn),在擁有 公共點(diǎn)的兩個(gè)三角形之間添加邊,從而構(gòu)建三角形鄰接圖,如果在將該廣義平面劃分成的所述若干個(gè)分離的子平面中的兩個(gè)或多個(gè)子平面 同時(shí)與另外的同一個(gè)平面相互連接,則將這些子平面組合起來作為一個(gè)組合的有界平面, 由所述組合的有界平面以及將該廣義平面劃分成的所述若干個(gè)分離的子平面中的無需組 合的有界平面共同組成所述的適用于對(duì)所述三維模型進(jìn)行分割的有界平面,其中,當(dāng)所述 兩個(gè)或多個(gè)子平面分別與所述另外的同一個(gè)平面存在至少一個(gè)公共點(diǎn)時(shí),該兩個(gè)或多個(gè)子 平面被認(rèn)為同時(shí)與該另外的同一個(gè)平面相互連接,以及其中,在頂點(diǎn)鄰接圖中,如果連接到 某個(gè)子平面上的頂點(diǎn)處于該子平面的同一側(cè),則將該子平面作為是所述的無需組合的有界 平面中的獨(dú)立的有界平面。(附記23)根據(jù)附記19-22中任一項(xiàng)中所述的裝置,其中輪廓圖提取單元被配置 成通過以下方式提取出所述三維模型的輪廓圖以所述三維模型的頂點(diǎn)作為輪廓圖的頂點(diǎn),各個(gè)頂點(diǎn)之間不存在連接;
22
對(duì)于有界平面生成單元所生成的每個(gè)有界平面,從有界平面生成單元所生成的有 界平面中查找與之相連接的有界平面,獲取處于該有界平面和與之相連接的有界平面的邊 界上的頂點(diǎn),并將各頂點(diǎn)相互連接以得到若干線段;和在所得到的若干線段之中選擇互不重疊的、與有界平面的內(nèi)部邊不同的線段作為 輪廓線,以得到所述三維模型的輪廓圖,其中,每條輪廓線至少要連接到兩個(gè)不同的有界平 面,而且在每一個(gè)有界平面內(nèi),都存在一個(gè)三角形使得它的某一條邊包含該輪廓線,以及其 中,內(nèi)部邊僅在一個(gè)有界平面內(nèi),或者被同一有界平面上的兩個(gè)或多個(gè)三角形所共有。(附記24)根據(jù)附記19-23中任一項(xiàng)中所述的裝置,其中所述輪廓圖分割單元包 括候選分割面檢測子單元,用于從所生成的有界平面中,查找所有候選分割面,對(duì)于 任意一個(gè)候選分割面,其頂點(diǎn)的數(shù)目大于等于4,并且所述三維模型的頂點(diǎn)分布在該候選分 割面的兩側(cè);模型分割子單元,用于逐一利用所檢測到的候選分割面中的分割面作為選定的候 選分割面來對(duì)所述輪廓圖進(jìn)行分割,直到將所述輪廓圖分割為一個(gè)子圖或至少兩個(gè)相互不 重疊的子圖;終止條件判斷子單元,對(duì)模型分割子單元得到的各個(gè)子圖,判斷其是否需要繼續(xù) 分割,如果需要,則以該子圖含有的候選分割面作為選定的候選分割面,對(duì)該子圖所對(duì)應(yīng)的 輪廓圖進(jìn)行分割,直到將與該子圖所對(duì)應(yīng)的輪廓圖分割為至少兩個(gè)相互不重疊的子圖。(附記25)根據(jù)附記24中所述的裝置,其中所述模型分割子單元被配置成通過所述選定的候選分割面將輪廓圖分割為一個(gè)子圖或至少兩個(gè)相互不重疊的 圖,使得所有子圖都包含該選定的候選分割面;將所得到的子圖中被判斷為洞的子圖和與該子圖的最近的、作為實(shí)體的子圖結(jié)合 起來,以便獲得新的實(shí)體;對(duì)分割得到的各個(gè)實(shí)體進(jìn)行處理,以便確定將哪些實(shí)體作為分割的結(jié)果。(附記26)根據(jù)附記25中所述的裝置,其中,所述模型分割子單元被配置成通過 如下處理來對(duì)被判斷為洞的子圖進(jìn)行處理以獲得新的實(shí)體對(duì)于每個(gè)子圖,根據(jù)其輪廓線信息,獲取其在選定的候選分割面上對(duì)應(yīng)的封閉區(qū) 域,利用所獲取的、該子圖在選定的候選分割面上的各個(gè)封閉區(qū)域之間的關(guān)系,以及該子圖 與選定的候選分割面的關(guān)系,判斷該子圖是否為洞;對(duì)被判斷為洞的子圖進(jìn)行處理,以便獲得新的實(shí)體。(附記27)根據(jù)附記26中所述的裝置,其中所述模型分割子單元被配置成通過如 下處理來判斷子圖是否為洞將處于最外面的封閉區(qū)域所對(duì)應(yīng)的子圖判斷為實(shí)體;根據(jù)除了處于最外面的封閉區(qū)域所對(duì)應(yīng)的子圖之外的其他子圖和與所述其他子 圖最近的子圖之間的相互關(guān)系,按照如下原則分別判斷其他子圖是否為洞1)若該子圖和與其最近的子圖,完全處于選定的候選分割面的同一側(cè),則判斷該 子圖為洞;2)若該子圖和與其最近的子圖,處于選定的候選分割面的完全相反的一側(cè),則判 斷該子圖為實(shí)體;
3)以選定的候選分割面為基準(zhǔn),如果從屬于該子圖且落在該選定的候選分割面上 的頂點(diǎn)出發(fā)連接到其它有界平面的有向線段以及該選定的候選分割面的法線向量位于該 選定的候選分割面的兩側(cè)時(shí),判斷該子圖為洞,否則判斷該子圖為實(shí)體;其中,對(duì)某一個(gè)子圖,與其最近的子圖是一個(gè)實(shí)體,同時(shí)該最近的子圖對(duì)應(yīng)的封閉 區(qū)域包含該子圖相應(yīng)的封閉區(qū)域而且是包含該子圖相應(yīng)的所有封閉區(qū)域中最小的。(附記28)根據(jù)附記25中所述的裝置,其中,所述模型分割子單元被配置成通過 預(yù)先設(shè)置的參數(shù)對(duì)分割結(jié)果進(jìn)行控制,使得只有滿足預(yù)定條件的部分才能從三維模型中被 分割出來。(附記29)根據(jù)附記28中所述的裝置,其中,所述預(yù)先設(shè)置的參數(shù)是子圖和與 其最近的子圖在選定的候選分割面上相應(yīng)區(qū)域面積的比值,如果該比值小于預(yù)先設(shè)定的閾 值,則該子圖能被分割出來,否則,該子圖和與其最近的子圖被組合稱為一個(gè)新的子圖,而 不能作為獨(dú)立的部分被分割出來。(附記30)根據(jù)附記24中所述的裝置,其中,所述終止條件判斷子單元被配置成 在某一個(gè)子圖滿足以下任意一個(gè)條件時(shí)判斷不需要對(duì)該子圖繼續(xù)進(jìn)行分割該子圖的頂點(diǎn)數(shù)量小于預(yù)定的第一閾值;該子圖含有的有界平面數(shù)量小于預(yù)定的第二閾值;該子圖含有的所有有界平面中不存在候選分割面;和該子圖中不存在可將與該子圖對(duì)應(yīng)的輪廓圖分割為至少兩個(gè)子圖的候選分割面。(附記31)根據(jù)附記30中所述的裝置,其中,所述第一閾值為8,所述第二閾值為 6。(附記32)—種圖像處理系統(tǒng),其包括如附記19-31中任一項(xiàng)所述的用于對(duì)三維 模型進(jìn)行分割的裝置。(附記33)如附記32所述的圖像處理系統(tǒng),其中,所述圖像處理系統(tǒng)是目標(biāo)檢測 系統(tǒng)、局部匹配系統(tǒng)、模型檢索系統(tǒng)。(附記34):—種存儲(chǔ)有機(jī)器可讀取的指令代碼的程序產(chǎn)品,所述指令代碼由機(jī)器 讀取并執(zhí)行時(shí),可執(zhí)行如附記1-18中任何一項(xiàng)所述的方法。在上面對(duì)本發(fā)明具體實(shí)施例的描述中,針對(duì)一種實(shí)施方式描述和/或示出的特征 可以以相同或類似的方式在一個(gè)或更多個(gè)其它實(shí)施方式中使用,與其它實(shí)施方式中的特征 相組合,或替代其它實(shí)施方式中的特征。應(yīng)該強(qiáng)調(diào),術(shù)語“包括/包含”在本文使用時(shí)指特征、要素、步驟或組件的存在,但 并不排除一個(gè)或更多個(gè)其它特征、要素、步驟或組件的存在或附加。此外,本發(fā)明的方法不限于按照說明書中描述的時(shí)間順序來執(zhí)行,也可以按照其 他的時(shí)間順序地、并行地或獨(dú)立地執(zhí)行。因此,本說明書中描述的方法的執(zhí)行順序不對(duì)本發(fā) 明的技術(shù)范圍構(gòu)成限制。盡管上面已經(jīng)通過對(duì)本發(fā)明的具體實(shí)施例的描述對(duì)本發(fā)明進(jìn)行了披露,但是,應(yīng) 該理解,本領(lǐng)域的技術(shù)人員可在所附權(quán)利要求的精神和范圍內(nèi)設(shè)計(jì)對(duì)本發(fā)明的各種修改、 改進(jìn)或者等同物。這些修改、改進(jìn)或者等同物也應(yīng)當(dāng)被認(rèn)為包括在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
一種用于對(duì)三維模型進(jìn)行分割的方法,包括有界平面生成步驟,用于根據(jù)輸入的三維模型的三角形網(wǎng)格數(shù)據(jù)對(duì)所述三維模型中包含的所有三角形進(jìn)行處理,以生成至少一個(gè)適用于對(duì)所述三維模型進(jìn)行分割的有界平面;輪廓圖提取步驟,用于通過所述生成的有界平面來提取出所述三維模型的輪廓圖;和輪廓圖分割步驟,用于根據(jù)所述生成的有界平面的信息以及所述三維模型的頂點(diǎn)鄰接圖的信息,將所述提取出的輪廓圖分割成滿足預(yù)定條件的一個(gè)子圖或者至少兩個(gè)相互不重疊的子圖,其中,所述頂點(diǎn)鄰接圖通過以下方式構(gòu)建根據(jù)所述三維模型的三角形網(wǎng)格數(shù)據(jù),以三維模型的頂點(diǎn)為節(jié)點(diǎn),在被一個(gè)或多個(gè)三角形所共有的每兩個(gè)頂點(diǎn)之間添加一條邊,從而構(gòu)建頂點(diǎn)鄰接圖。
2.如權(quán)利要求1所述的方法,還包括在所述有界平面生成步驟之前的預(yù)分割步驟,用 于根據(jù)輸入的三維模型的三角形網(wǎng)格數(shù)據(jù)中所包括的三角形數(shù)據(jù)和頂點(diǎn)數(shù)據(jù),將該輸入三 維模型預(yù)分割成一個(gè)子模型或者至少兩個(gè)相互分離的子模型,其中,所述方法對(duì)于所述子 模型中的每一個(gè)子模型分別執(zhí)行所述有界平面生成步驟、輪廓圖提取步驟和輪廓圖分割步 驟,以便將每一個(gè)子模型都分割成滿足預(yù)定條件的一個(gè)子圖或者至少兩個(gè)相互不重疊的子 圖。
3.如權(quán)利要求2所述的方法,其中,所述預(yù)分割步驟包括 根據(jù)所述三維模型的三角形網(wǎng)格數(shù)據(jù),構(gòu)建頂點(diǎn)鄰接圖;確定頂點(diǎn)鄰接圖是否為連通的,其中,如果頂點(diǎn)鄰接圖中的任意一對(duì)頂點(diǎn)之間都存在 路徑相連,則該圖是連通的,否則不連通;和如果確定頂點(diǎn)鄰接圖不是連通的,則對(duì)應(yīng)于頂點(diǎn)鄰接圖中的互不連接的子圖來將三維 模型分割為至少兩個(gè)相互分離的子模型。
4.如權(quán)利要求2所述的方法,其中,所述預(yù)分割步驟包括 根據(jù)所述三維模型的三角形網(wǎng)格數(shù)據(jù),構(gòu)建三角形鄰接圖;確定三角形鄰接圖是否為連通的,其中,如果三角形鄰接圖中的任意一對(duì)三角形之間 都存在路徑相連則該圖是連通的,否則不連通;如果確定三角形鄰接圖不是連通的,則對(duì)應(yīng)于三角形鄰接圖中的互不連接的子圖來將 三維模型分割為至少兩個(gè)相互分離的子模型; 其中,所述三角形鄰接圖通過以下方式構(gòu)建根據(jù)所述三維模型的三角形網(wǎng)格數(shù)據(jù),以三維模型的中的三角形為節(jié)點(diǎn),在擁有公共 點(diǎn)的每兩個(gè)三角形之間添加邊,從而構(gòu)建三角形鄰接圖。
5.如權(quán)利要求1-4中任一項(xiàng)所述的方法,還包括在所述輪廓圖分割步驟之后的模型重 建步驟,用于根據(jù)所述分割成的一個(gè)子圖或者至少兩個(gè)相互不重疊的子圖以及所述三維模 型的三角形網(wǎng)格數(shù)據(jù)來進(jìn)行三角化處理,以便重建組成所述三維模型的、由三角形網(wǎng)格來 表達(dá)的一系列立體部件。
6.根據(jù)權(quán)利要求1-5中任一項(xiàng)所述的方法,其中,所述有界平面生成步驟包括將所述三維模型中包含的所有三角形中的每一個(gè)三角形作為子平面,使得滿足聚合條 件的子平面聚合成一個(gè)新的子平面,直到所有的子平面不能再聚合為止,從而生成廣義平對(duì)所述廣義平面中的每一個(gè)進(jìn)行如下處理,以生成至少一個(gè)適用于對(duì)所述三維模型進(jìn)行分割的有界平面;對(duì)位于該廣義平面上的三角形,創(chuàng)建三角形鄰接圖,如果在該鄰接圖中,該廣義平面上的 三角形可被劃分到若干個(gè)分離的子平面中,且每個(gè)子平面包含多個(gè)相互連接的三角形時(shí),則將 該廣義平面劃分為所述若干個(gè)分離的子平面,其中,所述三角形鄰接圖通過以下方式構(gòu)建根據(jù)所述三維模型的三角形網(wǎng)格數(shù)據(jù),以三維模型的中的三角形為節(jié)點(diǎn),在擁有公共 點(diǎn)的兩個(gè)三角形之間添加邊,從而構(gòu)建三角形鄰接圖,如果在將該廣義平面劃分成的所述若干個(gè)分離的子平面中的兩個(gè)或更多個(gè)子平面同 時(shí)與另外的同一個(gè)平面相互連接,則將這些子平面組合起來作為一個(gè)組合的有界平面,由 所述組合的有界平面以及將該廣義平面劃分成的所述若干個(gè)分離的子平面中的無需組合 的有界平面共同組成所述的適用于對(duì)所述三維模型進(jìn)行分割的有界平面,其中,當(dāng)所述兩 個(gè)或更多個(gè)子平面分別與所述另外的同一個(gè)平面存在至少一個(gè)公共點(diǎn)時(shí),該兩個(gè)或多個(gè)子 平面被認(rèn)為同時(shí)與該另外的同一個(gè)平面相互連接,以及其中,在頂點(diǎn)鄰接圖中,如果連接到 某個(gè)子平面上的頂點(diǎn)處于該子平面的同一側(cè),則將該子平面作為是所述的無需組合的有界 平面中的獨(dú)立的有界平面。
7.根據(jù)權(quán)利要求6中所述的方法,其中,子平面可聚合的條件包括 所述子平面的法線方向相同或相反;以及所述子平面的頂點(diǎn)處于同一個(gè)平面上,其中,以與子平面相關(guān)的三角形的法線方向作為該子平面的法線方向。
8.根據(jù)權(quán)利要求1-7中任一項(xiàng)中所述的方法,其中輪廓圖提取步驟通過以下方式提取 出所述三維模型的輪廓圖以所述三維模型的頂點(diǎn)作為輪廓圖的頂點(diǎn),各個(gè)頂點(diǎn)之間不存在連接; 對(duì)于有界平面生成步驟所生成的每個(gè)有界平面,從有界平面生成步驟所生成的有界平 面中查找與之相連接的有界平面,獲取處于該有界平面和與之相連接的有界平面的邊界上 的頂點(diǎn),并將各頂點(diǎn)相互連接以得到若干線段;和在所得到的若干線段之中選擇互不重疊的、與有界平面的內(nèi)部邊不同的線段作為輪廓 線,以得到所述三維模型的輪廓圖,其中,每條輪廓線至少要連接到兩個(gè)不同的有界平面, 而且在每一個(gè)有界平面內(nèi),都存在一個(gè)三角形使得它的某一條邊包含該輪廓線,以及其中, 內(nèi)部邊僅在一個(gè)有界平面內(nèi),或者被同一有界平面上的兩個(gè)或多個(gè)三角形所共有。
9.一種用于對(duì)三維模型進(jìn)行分割的裝置,包括有界平面生成單元,用于根據(jù)輸入的三維模型的三角形網(wǎng)格數(shù)據(jù)對(duì)所述三維模型中包 含的所有三角形進(jìn)行處理,以生成至少一個(gè)適用于對(duì)所述三維模型進(jìn)行分割的有界平面; 輪廓圖提取單元,用于通過所述生成的有界平面來提取出所述三維模型的輪廓圖; 輪廓圖分割單元,用于根據(jù)所述生成的有界平面的信息以及所述三維模型的頂點(diǎn)鄰接 圖的信息,將所述提取出的輪廓圖分割成滿足預(yù)定條件的一個(gè)子圖或者至少兩個(gè)相互不重 疊的子圖,其中,所述頂點(diǎn)鄰接圖通過以下方式構(gòu)建根據(jù)所述三維模型的三角形網(wǎng)格數(shù)據(jù),以三維模型的頂點(diǎn)為節(jié)點(diǎn),在被一個(gè)或多個(gè)三 角形所共有的每兩個(gè)頂點(diǎn)之間添加一條邊,從而構(gòu)建頂點(diǎn)鄰接圖。
10.一種圖像處理系統(tǒng),其包括如權(quán)利要求9中9所述的用于對(duì)三維模型進(jìn)行分割的裝置。
全文摘要
提供一種用于對(duì)三維模型進(jìn)行分割的方法,包括有界平面生成步驟,用于根據(jù)輸入的三維模型的三角形網(wǎng)格數(shù)據(jù)對(duì)所述三維模型中包含的所有三角形進(jìn)行處理,以生成至少一個(gè)適用于對(duì)所述三維模型進(jìn)行分割的有界平面;輪廓圖提取步驟,用于通過所述生成的有界平面來提取出所述三維模型的輪廓圖;和輪廓圖分割步驟,用于根據(jù)所述生成的有界平面的信息以及所述三維模型的頂點(diǎn)鄰接圖的信息,將所述提取出的輪廓圖分割成一個(gè)子圖或者至少兩個(gè)相互不重疊的子圖。還提供對(duì)三維模型進(jìn)行分割的裝置及其具有該裝置的圖像處理系統(tǒng)。通過本發(fā)明的方法、裝置和系統(tǒng),可提高三維模型分割的精確性和效率。
文檔編號(hào)G06T15/00GK101944239SQ200910152258
公開日2011年1月12日 申請(qǐng)日期2009年7月8日 優(yōu)先權(quán)日2009年7月8日
發(fā)明者于浩, 劉汝杰, 增本大器, 王月紅, 遠(yuǎn)藤進(jìn), 長田茂美 申請(qǐng)人:富士通株式會(huì)社