最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

三維掃描系統(tǒng)中的圖形重構(gòu)方法

文檔序號:6112854閱讀:244來源:國知局
專利名稱:三維掃描系統(tǒng)中的圖形重構(gòu)方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種三維掃描系統(tǒng)中的圖形重構(gòu)方法。
本發(fā)明主要是涉及到逆向工程(圖1)中,用三維掃描系統(tǒng)(圖2)獲取產(chǎn)品海量數(shù)據(jù)點(點云),經(jīng)過對這些點云數(shù)據(jù)的過濾處理和無縫拼接,然后對拼接后的點云塊進行切割處理得到線,再在點或線的基礎(chǔ)上構(gòu)造面,進而構(gòu)造出產(chǎn)品幾何模型。利用本發(fā)明,可以作為三維掃描儀器和三維CAD軟件的接口模塊,搭起二者之間的橋梁,并在此基礎(chǔ)上研究直接由點云數(shù)據(jù)做面的處理方法。
背景技術(shù)
逆向工程在實踐中有著廣泛的應(yīng)用前景。主要是由于不少產(chǎn)品外形復(fù)雜,如汽車和飛機的覆蓋件、人造假肢、陶瓷產(chǎn)品、藝術(shù)雕塑品及各種復(fù)雜零部件等,其自由曲面的設(shè)計表達或數(shù)學(xué)模型的建立都十分困難,現(xiàn)有的CAD系統(tǒng)尚難以進行嚴(yán)格的幾何描述。
在逆向工程中,如何將實物零件經(jīng)過三維測量和處理,實現(xiàn)三維模型重構(gòu)和交互設(shè)計、修改,以便于通過快速成型或數(shù)控加工快速制作產(chǎn)品投放市場,是逆向工程研究的關(guān)鍵。
在逆向工程中,我們一般是通過三坐標(biāo)測量機(CMM)、激光測量機、光柵掃描儀或工業(yè)CT等先進的快速測量系統(tǒng)獲取海量數(shù)據(jù)點(點云),對這些點云數(shù)據(jù)進行過濾處理和無縫拼接后,對拼接后的點云塊進行切割得到線,再在點或線的基礎(chǔ)上構(gòu)造面。一般情況下,由測量得到的點云由于產(chǎn)品尺寸、拓撲等各種原因都是經(jīng)過多次測量拼接后得到的,因此點云數(shù)據(jù)具有數(shù)據(jù)量大(海量)、數(shù)據(jù)雜亂無序等特點,一般情形下這些點云數(shù)據(jù)無法被現(xiàn)在廣泛使用的商業(yè)CAD軟件如CATIA、Pro/ENGINEER、UG等直接進行處理,因此需要有能對雜亂海量數(shù)據(jù)點云的進行預(yù)處理有序的點并實現(xiàn)取線等基本功能的中間模塊,這也是逆向工程中的一個瓶頸問題,對于逆向工程的應(yīng)用和推廣都有十分重要的意義。

發(fā)明內(nèi)容
本發(fā)明提供一種能夠提高圖形重構(gòu)速度的三維掃描系統(tǒng)中圖形重構(gòu)方法。
本發(fā)明采用如下技術(shù)方案一種三維掃描系統(tǒng)中的圖形重構(gòu)方法第一步對預(yù)處理后的點云進行平行切割,得到N個平行截面,再在每個平行截面的上方和下方分別對點云實施平行切割,得到N個含有平行截面的截體,將各個截體內(nèi)的點云上的點向該截體內(nèi)的平行截面進行垂直投影,并將該截體內(nèi)平行截面點的垂直投影視為截體內(nèi)平行截面與點云的截點,由各個截體內(nèi)平行截面與點云的截點分別構(gòu)成N條鏈表Li(i=1,2,...,N),在各個截體內(nèi)的截點中分別選出一組處理點,該處理點是滿足以下條件的截點,該條件為兩處理點間的距離為點云內(nèi)相鄰兩點之間的間距或其整數(shù)倍。
第二步分別對每條鏈表中的處理點進行排序,該排序方法為在每條鏈表中找出X坐標(biāo)最小的點A(xa,ya,za)和最大的點B(xb,yb,zb),采用經(jīng)過直線AB垂直平行截面的所在面的平面把每條鏈表中的處理點剖開成兩部分,并分別將該兩部分處理點的X坐標(biāo)值按照由小到大順序,分別置于列表list1及列表1ist2中,再將列表list2中的處理點排在列表list1中的處理點之后,置于剛處理的原鏈表中。
第三步取相鄰的兩條鏈表Li和Li+1,分別取出Li和Li+1中的第一個點和第二個點,將取出的4個點連接成一個四邊形;然后再分別取出Li和Li+1兩條鏈表中第二個點和第三個點,將取出的4各點連接成一個四邊形,以此類推,直至兩條鏈表Li和Li+1中的所有處理點都處理完畢;最后將兩條鏈表Li和Li+1中的處理點形成的四邊形沿任意一條對角線進行三角剖分。
按以上操作對剩余的相鄰鏈表所形成的截體表面進行三角剖分,形成由三角形構(gòu)成的三角網(wǎng)格,第四步將由上述三角剖分所得到的各個三角形的三個頂點的參數(shù)值帶入OpenGL中提供的API函數(shù),就可在顯示器上再現(xiàn)真實的原始物體。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點本發(fā)明主要用于三維掃描系統(tǒng)中的海量無序數(shù)據(jù)點(點云)的處理,經(jīng)過對這些點云數(shù)據(jù)的過濾處理和無縫拼接,由拼接后的點云塊進行切割得到線,再在點或線的基礎(chǔ)上構(gòu)造面。該方法主要有以下優(yōu)點(1)處理數(shù)據(jù)量極大,可達幾百萬乃至上千萬個點,而對硬件無太高要求,最低配置內(nèi)存僅為64M,任何一臺能運行三維設(shè)計軟件的機器上都能運行本軟件。
(2)建面算法對點云不要求任何附加幾何和拓撲信息(包括測點法矢,曲面邊界信息),可以散亂點集為處理對象,在點處理的適應(yīng)性上比一般的三維設(shè)計軟件強得多。
(3)建面時通過優(yōu)化算法先對海量數(shù)據(jù)進行劃分,然后排序,最后由相鄰點列構(gòu)造三角形,極大的加快了點云的三角化的速度。簡單、實效,較其它的CAD軟件構(gòu)造面的速度更快。
(4)操作簡單易行,不需一般的三維CAD軟件那樣需要使用者有較深的專業(yè)設(shè)計背景知識。
(5)本算法充分利用VC++6.0這種開發(fā)工具中MFC的豐富資源,能夠方便地實現(xiàn)數(shù)據(jù)的連接。充分利用了MFC中CObList類和CObArray類,可以直接調(diào)用其成員函數(shù)來管理和處理數(shù)據(jù),簡化了程序的復(fù)雜性,加快了計算速度,實現(xiàn)了數(shù)據(jù)管理的高效性,可以極大的縮短編程時間,減少錯誤,提高網(wǎng)格生成效率。
(6)本發(fā)明充分利用了OpenGL中提供的API函數(shù)顯示三角形,再賦予材質(zhì)屬性并打上光照渲染,則就可在顯示器上再現(xiàn)真實的原始物體。
(7)仿真結(jié)果表明本發(fā)明提供的構(gòu)建曲面的思路是可行的,其三角網(wǎng)格化的速度很快并且質(zhì)量很好,曲面重建的效果良好。


圖1是逆向工程流程圖。
圖2光柵式三維掃描系統(tǒng)組成圖。
圖3圖形重構(gòu)方法算法整體流程圖。
圖4獲取截線云算法的流程圖。
圖5是經(jīng)過預(yù)處理的小熊模型點云數(shù)據(jù)圖形。
圖6是給定平行面間距d=4.0情況下求得的截線云數(shù)據(jù)圖形。
圖7是從圖6中的截線云數(shù)據(jù)抽取出的一段數(shù)據(jù)鏈條圖形。
圖8封閉環(huán)式的截線云示意圖。
圖9跨距。
圖10對應(yīng)于曲面重構(gòu)問題的有向圖搜索問題。
圖11啟發(fā)式搜索方法。
圖12原始點云。
圖13三角化點云。
圖14三角化曲面。
圖15曲率均值化后三角化曲面。
具體實施例方式
一種三維掃描系統(tǒng)中的圖形重構(gòu)方法第一步對預(yù)處理后的點云進行平行切割,得到N個平行截面,再在每個平行截面的上方和下方分別對點云實施平行切割,得到N個含有平行截面的截體,將各個截體內(nèi)的點云上的點向該截體內(nèi)的平行截面進行垂直投影,并將該截體內(nèi)平行截面點的垂直投影視為截體內(nèi)平行截面與點云的截點,由各個截體內(nèi)平行截面與點云的截點分別構(gòu)成N條鏈表Li(i=1,2,...,N),在各個截體內(nèi)的截點中分別選出一組處理點,該處理點是滿足以下條件的截點,該條件為兩處理點間的距離為點云內(nèi)相鄰兩點之間的間距或其整數(shù)倍。
第二步分別對每條鏈表中的處理點進行排序,該排序方法為在每條鏈表中找出X坐標(biāo)最小的點A(xa,ya,za)和最大的點B(xb,yb,zb),采用經(jīng)過直線AB垂直平行截面的所在面的平面把每條鏈表中的處理點剖開成兩部分,并分別將該兩部分處理點的X坐標(biāo)值按照由小到大順序,分別置于列表list1及列表list2中,再將列表list2中的處理點排在列表list1中的處理點之后,置于剛處理的原鏈表中。
第三步取相鄰的兩條鏈表Li和Li+1,分別取出Li和Li+1中的第一個點和第二個點,將取出的4個點連接成一個四邊形;然后再分別取出Li和Li+1兩條鏈表中第二個點和第三個點,將取出的4各點連接成一個四邊形,以此類推,直至兩條鏈表Li和Li+1中的所有處理點都處理完畢;最后將兩條鏈表Li和Li+1中的處理點形成的四邊形沿任意一條對角線進行三角剖分。
按以上操作對剩余的相鄰鏈表所形成的截體表面進行三角剖分,形成由三角形構(gòu)成的三角網(wǎng)格,第四步將由上述三角剖分所得到的各個三角形的三個頂點的參數(shù)值帶入OpenGL中提供的API函數(shù),就可在顯示器上再現(xiàn)真實的原始物體。
本發(fā)明提供對雜亂海量數(shù)據(jù)進行點的先期處理、得到有序的點、實現(xiàn)取線功能、直至構(gòu)造曲面的功能,其中具體需要的對點云操作的主要功能如下2.1讀數(shù)據(jù)顯示點云由于逆向工程中由掃描系統(tǒng)得到的數(shù)據(jù)量極大,經(jīng)常達到上百萬個點,這樣海量數(shù)據(jù)的讀取與顯示極其費時,為了把數(shù)據(jù)圖形快速顯示,對程序的算法執(zhí)行效率要求極高。本程序算法運用VC和OpenGL中的一些函數(shù)功能進行優(yōu)化組合,使數(shù)據(jù)的讀取與顯示速度比常規(guī)情況下有了極大的提高。
2.2平移、旋轉(zhuǎn)、放縮點云三維圖形比之二維圖形的優(yōu)勢之一在于,我們能夠從不同的角度對之進行觀察和研究,然而計算機的顯示屏幕卻只是二維的,我們可以通過設(shè)置景深的灰度來來展現(xiàn)整個畫面的縱深感,但要想觀測到三維對象的不同側(cè)面,這還是不夠的。既然觀察者的位置是固定的,我們就想辦法讓圖形對象動起來。所以在這個軟件中,我們設(shè)置了平移、旋轉(zhuǎn)操作,而很多時候,要想知道畫面細節(jié),需要對畫面的局部地方進行很清楚的觀察、操作。故而在這個軟件中我們也加入了相應(yīng)放縮功能。
平移、旋轉(zhuǎn)、放縮由于都是對整個對象的海量數(shù)據(jù)操作,計算量十分巨大,對時間的要求很高。
2.3稀釋點云輸入數(shù)據(jù)的數(shù)據(jù)量如果太大,會使平移、旋轉(zhuǎn)、放縮的運算量太大,從而反應(yīng)時間也會相應(yīng)的增加。因此,本軟件提供稀釋功能,這樣平移、旋轉(zhuǎn)、放縮的運算量可以僅為原先的幾十分之一。用戶可以先對圖形進行稀釋,當(dāng)把圖形轉(zhuǎn)換到想要觀察的部分,再對它進行復(fù)原操作。有時候,用戶不需要太高的精度,數(shù)據(jù)量太大,給出很多用戶覺得是冗余的信息,也可對點云塊進行稀釋,再以稀釋后的點云為基礎(chǔ)進行操作。從而大大減少運算量。
2.4刪除點云雖然現(xiàn)在的測量系統(tǒng)的研究已經(jīng)取得了長足進步,測量得到的數(shù)據(jù)也已基本滿足要求,特別是精度可達0.1mm,然而其還未能達到智能化的水平,因此無法自行分辨出測量物體與背景物。雖然背景可以用反射性能很差的黑色,但大多數(shù)情況還是不可避免地帶入很多無用的雜點,如果不把這些雜點去掉,將會影響后期取線和做面的效果,使其無法精確的復(fù)現(xiàn)測量物的原貌。而有些時候,我們雖然測量到整個物體的點云數(shù)據(jù),但我們只對其中的一部分感興趣,這時,也需要刪去其它我們不需要的部分以減少點云處理的工作量,從而大大加快處理時間。
2.5點云拼接在產(chǎn)品外形的測量過程中,通常不能在同一坐標(biāo)系下將產(chǎn)品的幾何數(shù)據(jù)一次測出,其原因之一是產(chǎn)品的尺寸超出了測量的行程,二是在部分區(qū)域測量探頭受被測實物的幾何形狀的干涉阻礙,不能觸及產(chǎn)品的反面,而應(yīng)將這些不同坐標(biāo)系下的重定位數(shù)據(jù)變換到同一坐標(biāo)系中,這個過程稱之為測量數(shù)據(jù)(多視角數(shù)據(jù))的重定位,也即拼接。本發(fā)明的特征是針對經(jīng)過過濾處理和無縫拼接的點云數(shù)據(jù),進行切割處理得到線,再在點或線的基礎(chǔ)上構(gòu)造面,進而構(gòu)造出產(chǎn)品幾何模型。
下面結(jié)合附圖示例對本發(fā)明的具體實施方式
作進一步描述。根據(jù)上述方法,對測量得到的海量點云數(shù)據(jù)進行曲面重構(gòu)。本軟件以PC上的Windows NT為開發(fā)平臺,以Visual C++6.0為開發(fā)環(huán)境,利用集成在Visual C++中的三維圖形軟件接口的新一代標(biāo)準(zhǔn)OpenGL進行編程。圖形重構(gòu)方法算法整體流程圖如圖3所示。對經(jīng)過過濾處理和無縫拼接的點云數(shù)據(jù)進行曲面重構(gòu),主要包括以下步驟(一)切割點云線在點云預(yù)處理之后,通過旋轉(zhuǎn)平移選好角度后,給定一系列平行面,求得物體(實際上是物體表面上的海量點)在這一截面上的數(shù)據(jù)點。但海量數(shù)據(jù)是離散的,給定某一任意平面,可能沒有(或者只有極個別點)在截面上,為此,我們只能在精度許可范圍內(nèi),盡可能地去接近真實世界,這樣也就產(chǎn)生了如下的算法(算法流程圖如圖4所示)首先由海量數(shù)據(jù)中任意相鄰的一對點得到一個距離,而由這樣的M(M>100)個距離得到的平均值為d。
(1)對點云進行預(yù)處理,去除雜點之后,通過旋轉(zhuǎn)平移選好切割角度后,給定一系列垂直于特征線的等間距的平行面(間距默認為d的三倍)。
(2)在給定平行面上下各作一個平行于給定平行面的平行面(其間距均為d),這樣就由派生出來的兩個平行面構(gòu)成一個截體,而我們則把落入這個截體內(nèi)的點在給定平行面上的垂直投影近似作為真實物體上的點落在給定平行面上的點,這樣就得到給定平面與真實物體的交點(截點)。同理,我們也就得到物體在一組平行面上的截點。
(3)對這一組平面中的每一個平行面,其上的截點構(gòu)成一條鏈條。設(shè)這組平行面共有N個,則得到N個鏈條。
(4)對每一個鏈條進行處理由這些截點得到一組處理點,這些處理點滿足條件A)兩點間的距離為d或者d的整數(shù)倍。
B)該點在給定截面(給定截體范圍內(nèi))上下都有臨近的離散點。
(5)對這N個鏈條處理就可以得到N個鏈條的處理點。即得到截線云。
根據(jù)上述方法,通過VC++6.0平臺用C++編程實現(xiàn)了對點云平行切割獲取截線云。圖5是經(jīng)過預(yù)處理的小熊模型點云數(shù)據(jù)。圖6是默認給定平行面間距為相鄰點間距的三倍情況下求得的截線云數(shù)據(jù)。圖7是從圖6中的截線云數(shù)據(jù)抽取出的一段數(shù)據(jù)鏈條。
(二)截線云排序切割得到的截線云是無序的,即無法根據(jù)它們的存儲順序來推測拓撲順序,為了使兩條截線云之間的三角網(wǎng)格化簡單、直觀,需要對點云線進行排序,以有序的兩條截線云構(gòu)造三角網(wǎng)格將大大降低復(fù)雜性,減少計算量。
排序就是將一組雜亂無章的數(shù)據(jù)按一定的規(guī)律順次排列起來。一般而言,排序首先要具有數(shù)據(jù)表,即通常指的排序?qū)ο?,排序?qū)ο笥卸鄠€屬性域,也就是多個數(shù)據(jù)成員組成,其中有一個屬性域可用來區(qū)分對象,作為排序的依據(jù),該域叫做關(guān)鍵碼。如果在數(shù)據(jù)表中各個對象的關(guān)鍵碼互不相同,這種關(guān)鍵碼稱為主關(guān)鍵碼。利用某一種排序方法按照主關(guān)鍵碼進行排序,排序的結(jié)果是唯一的。但是數(shù)據(jù)表中有些對象的關(guān)鍵碼相同,這種情況下,可慮用某種方法進行轉(zhuǎn)換限制,轉(zhuǎn)化為限制條件下的主關(guān)鍵碼進行排序。
如圖8所示,截線云環(huán)是一個和Z軸垂直的平面(截線云存儲在鏈表ListM中),橫軸為X方向,豎軸為Y方向。如果截線云環(huán)是封閉環(huán),采用關(guān)鍵碼為點X軸方向坐標(biāo)值排序,除端點外,一個X值對應(yīng)兩個點,即其關(guān)鍵碼不是單值性質(zhì)的。我們先找到截線云的X坐標(biāo)最小和最大的點A(xa,ya,za),B(xb,yb,zb)。采用經(jīng)過直線AB垂直截線云所在面的平面把截線云剖開成兩部分,判斷截線云上的每一個點在這個平面的哪個方向從而把這些點分成兩組,則每一組中關(guān)鍵碼是唯一的(在此例中關(guān)鍵碼是x)。兩組點分別排序,排好之后合并起來就能得到有序的截線云。由于圖8中截線云所在的面與Z軸垂直,因此可利用坐標(biāo)值y作為判斷標(biāo)準(zhǔn)對點分組。具體算法如下(1)得到直線AB的方程y=yb-yaxb-xa(x-xa)+ya.]]>(2)從截線云鏈表ListM中得到一點P(xi,yi,zi),把x=xi代入上面的方程得到y(tǒng)=y(tǒng)k。
(3)比較yk和yi,如果yk>=y(tǒng)i,點P歸入第一組點集list1,反之歸入第二組點集list2。
(4)LIstM中如果沒有點了,則分組結(jié)束;否則,返回到(2)。
list1從小到大排序,list2從大到小插入,各自插入完成之后,把鏈表list2的表第一個元素的指針插在鏈表list1的末尾。
排序的方法有插入排序、冒泡排序、選擇排序、希爾排序、堆排序、快速排序等,由于點云得到的點經(jīng)過拼合和后續(xù)的一些處理已變得毫無規(guī)律可循,成為雜亂點,且用鏈表結(jié)構(gòu)存儲,因此這里適合采用鏈表直接插入排序。
(三)截線云三角化經(jīng)過以上切割和排序處理的截線云可稱為輪廓線,現(xiàn)在從輪廓線就可以開始三維重建的工作了。本發(fā)明采用基于相鄰點列構(gòu)造三角形的重構(gòu)曲面算法。
(1)基本準(zhǔn)則假設(shè)兩相鄰平行平面上各有一輪廓線,如圖9示。上輪廓線的采樣點列為Q={Q0,Q1...,Qn-1},下輪廓線上的采樣點列為P={P0,P1...,Pm-1}。各輪廓線上采樣點列均按逆時針方向排列。如果用直線把上下輪廓線上的采樣點依次連接起來形成一個封閉的三角形帶,我們就得到一個過輪廓線的曲面的近似多邊形表示。
連接上輪廓線上的一點與下輪廓線上的一采樣點的線段稱為跨距。相鄰的兩跨距(共享一個采樣點)構(gòu)成一個三角面片,稱為為基本三角面片。這兩個跨距稱為左跨距和右跨距。
采用三角片在P和Q之間構(gòu)造一個圓柱表面,三角片的頂點均來自P和Q。但是并非所有的組合方式都是可接受的,只有滿足以下條件的三角片集合才是可接受的1)每一個輪廓線段必須在而且只能在一個基本三角面片中出現(xiàn)。如果上下輪廓線各有m和n個輪廓線段,則合理的三角面模型含有m+n個基本三角面片。
2)如果一個跨距在某一基本三角面中為左跨距,則該跨距是且僅是另一個三角面片的右跨距。
將該問題歸結(jié)為對有向圖的搜索。如圖10所示,可以用一個有m行,n列的有向圖G(V,A)來表示點列及其連接關(guān)系。圖中每一個結(jié)點表示上輪廓線和下輪廓線的之間的一個跨距,Vij表示點Pi到Qj之間的跨距,有向弧[Vij,Vi,j+1]稱為水平弧,對應(yīng)了一個基本三角面片,其左跨距為Vij,右跨距為Vi,j+1。稱[Vij,Vi+1,j]為垂直弧,它同樣對應(yīng)了一個基本三角面片。G(V,A)由跨距節(jié)點和水平弧和垂直弧構(gòu)成。
因此,一個可接受的三角面模型對應(yīng)從V00到Vm-1,n-1的路徑。
(2)啟發(fā)式優(yōu)化逼近方法三角曲面重構(gòu)可以歸結(jié)為一個搜索問題。在圖10中,水平弧和垂直弧可以賦以不同的值,于是,基于輪廓線的三角曲面重構(gòu)問題歸結(jié)為以某個目標(biāo)函數(shù)極小或極大為目標(biāo),搜索一條從V00到Vm-1,n-1的路徑。本發(fā)明采用啟發(fā)式優(yōu)化逼近方法,用有向圖的啟發(fā)式搜索模型和相關(guān)性模型方法,其結(jié)果是在有向圖中尋找一條可接受的路徑而非最優(yōu)解,本算法是基于輪廓線相關(guān)性的一種啟發(fā)式算法,如圖11。
首先將上下輪廓線段的長度正規(guī)化,使每條輪廓線的總長度都為1。記w(Pi,Pi+k)為Pi到Pi+k之間的規(guī)范化距離,可以采用以下啟發(fā)式規(guī)則之一1)如果|w(P0,Pi)+w(Pi,Pi+1)-w(Q0,Qj)|<|w(Q0,Qj)+w(Qj,Qj+1)-w(P0,Pj)|,則選擇三角片PiPi+1Qj,否則選擇三角片PiQjQj+1。
2)如果w(P0,Pi)+w(Pi,Pi+1)<w(Q0,Qj)+w(Qj,Qj+1),則選擇三角片PiPi+1Qj,否則選擇三角片PiQjQj+1。
規(guī)則1)要求加入的三角片應(yīng)滿足上下邊之差保持最小,強調(diào)了上下層輪廓線之間的平衡。規(guī)則2)則要求加入的三角片是基于訪問過的累加周長。
值得注意的事,啟發(fā)式搜索方法需要一對起始的匹配點對。
按照前面(1)、(2)所述方法即可完成排序截線云的三角網(wǎng)格化,形成點云的三角網(wǎng)格。其結(jié)果如圖13所示。由于在點云三角化之前已經(jīng)對點云進行有效的優(yōu)化和排序處理,所以其三角網(wǎng)化的速度很快,且由實例可知其三角網(wǎng)格質(zhì)量也很高。
(四)圖形曲面顯示三角網(wǎng)格化后,為了更直觀的觀察曲面的光滑情況,本發(fā)明充分利用了OpenGL中提供的API函數(shù)顯示三角形,再賦予材質(zhì)屬性并打上光照渲染,則就可在顯示器上再現(xiàn)真實的原始物體。由于在構(gòu)面之前已先對線進行有效的優(yōu)化和排序,因此,構(gòu)面的算法就不再繁冗復(fù)雜,而是簡單高效,生成面的速度大大提高。這是本軟件的極大優(yōu)勢。
圖形曲面實例如圖14,15所示。由仿真例子可知,本發(fā)明提供的構(gòu)建曲面的思路是可行的,曲面重建的效果良好。
權(quán)利要求
1.一種三維掃描系統(tǒng)中的圖形重構(gòu)方法,其特征在于第一步對預(yù)處理后的點云進行平行切割,得到N個平行截面,再在每個平行截面的上方和下方分別對點云實施平行切割,得到N個含有平行截面的截體,將各個截體內(nèi)的點云上的點向該截體內(nèi)的平行截面進行垂直投影,并將該截體內(nèi)平行截面點的垂直投影視為截體內(nèi)平行截面與點云的截點,由各個截體內(nèi)平行截面與點云的截點分別構(gòu)成N條鏈表Li(i=1,2,...,N),在各個截體內(nèi)的截點中分別選出一組處理點,該處理點是滿足以下條件的截點,該條件為兩處理點間的距離為點云內(nèi)相鄰兩點之間的間距或其整數(shù)倍。第二步分別對每條鏈表中的處理點進行排序,該排序方法為在每條鏈表中找出X坐標(biāo)最小的點A(xa,ya,za)和最大的點B(xb,yb,zb),采用經(jīng)過直線AB垂直平行截面的所在面的平面把每條鏈表中的處理點剖開成兩部分,并分別將該兩部分處理點的X坐標(biāo)值按照由小到大順序,分別置于列表list1及列表list2中,再將列表list2中的處理點排在列表list1中的處理點之后,置于剛處理的原鏈表中。第三步取相鄰的兩條鏈表Li和Li+1,分別取出Li和Li+1中的第一個點和第二個點,將取出的4個點連接成一個四邊形;然后再分別取出Li和Li+1兩條鏈表中第二個點和第三個點,將取出的4各點連接成一個四邊形,以此類推,直至兩條鏈表Li和Li+1中的所有處理點都處理完畢;最后將兩條鏈表Li和Li+1中的處理點形成的四邊形沿任意一條對角線進行三角剖分。按以上操作對剩余的相鄰鏈表所形成的截體表面進行三角剖分,形成由三角形構(gòu)成的三角網(wǎng)格,第四步將由上述三角剖分所得到的各個三角形的三個頂點的參數(shù)值帶入OpenGL中提供的API函數(shù),就可在顯示器上再現(xiàn)真實的原始物體。
全文摘要
本發(fā)明提出了一種三維掃描系統(tǒng)中的圖形重構(gòu)方法,針對快速測量系統(tǒng)獲取海量數(shù)據(jù)點云,對經(jīng)過過慮處理和拼接后的點云進行三角剖分,在此基礎(chǔ)上構(gòu)面,步驟如下對預(yù)處理后的點云進行平行切割,由各個平面所得的截點分別構(gòu)成N條鏈表L
文檔編號G01B11/00GK1996392SQ200610041320
公開日2007年7月11日 申請日期2006年8月14日 優(yōu)先權(quán)日2006年8月14日
發(fā)明者達飛鵬, 唐琦 申請人:東南大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1