亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種多層三維點(diǎn)云單層化的方法與流程

文檔序號:11293309閱讀:591來源:國知局
一種多層三維點(diǎn)云單層化的方法與流程

本發(fā)明涉及多層三維點(diǎn)云單層化方法,屬于點(diǎn)云數(shù)據(jù)處理領(lǐng)域。



背景技術(shù):

隨著立體視覺的發(fā)展,三維點(diǎn)云模型變得更加常用。在實(shí)際的模型獲取中,對于非封閉的殼體模型,由于模型獲取設(shè)備可能獲取到殼的正反兩面信息,這就會形成雙層模型,此外也存在其他因素造成模型的雙層或多層。通常來說這對于進(jìn)一步處理是不利的,故需要尋找一種方法去除其中多余的層。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的是為了解決現(xiàn)有的點(diǎn)云模型獲取方法會獲取到模型的多余層,進(jìn)而導(dǎo)致計(jì)算時間增加、計(jì)算效率減慢甚至無法做進(jìn)一步處理的缺點(diǎn),而提出一種多層三維點(diǎn)云單層化的方法。

根據(jù)本發(fā)明的第一方面,提供了一種用于多層三維點(diǎn)云單層化的方法,包括:

步驟一、獲取三維點(diǎn)云模型;

步驟二、對于所述三維點(diǎn)云模型中的每一個點(diǎn),搜索第一閾值范圍內(nèi)的鄰點(diǎn),得到每個點(diǎn)的第一鄰點(diǎn)集合;根據(jù)所述第一鄰點(diǎn)集合確定模型在每個點(diǎn)位置的法向量作為對應(yīng)點(diǎn)的法向量;所述第一閾值的選取依據(jù)多層模型中相鄰兩層的間隙而定;

步驟三、對于所述三維點(diǎn)云模型中的第i個點(diǎn),搜索第二閾值范圍內(nèi)的鄰點(diǎn),得到由該點(diǎn)的鄰點(diǎn)ci1,ci2,……,cin組成的第二鄰點(diǎn)集合;所述第二閾值范圍依據(jù)多層模型中相鄰兩層的間隙以及計(jì)算速度的要求而定,且第二閾值范圍大于第一閾值范圍;

步驟四、計(jì)算所述三維點(diǎn)云模型中的第i個點(diǎn)到該點(diǎn)的第j個鄰點(diǎn)的向量rij,并計(jì)算該向量與所述第i個點(diǎn)的法向量ni所形成的夾角<ni,rij>;其中1≤j≤n;

步驟五、判斷所述第j個鄰點(diǎn)對應(yīng)的<ni,rij>是否小于第三閾值;若是,則轉(zhuǎn)至步驟六;若否,則選取下一個鄰點(diǎn),并轉(zhuǎn)至步驟四;

步驟六、計(jì)算所述第i個點(diǎn)的法向量ni與該點(diǎn)對應(yīng)的第j個鄰點(diǎn)的法向量ncij的夾角<ni,ncij>,若<ni,ncij>小于第四閾值,則將所述第j個鄰點(diǎn)cij從模型中去除,再選取下一個鄰點(diǎn)處理;

步驟七、重復(fù)步驟四至六,直至第i個點(diǎn)的所有鄰點(diǎn)處理完成,再選取下一個點(diǎn)處理;

步驟八、重復(fù)步驟三至七,直至所述三維點(diǎn)云模型中的所有點(diǎn)處理完成。

根據(jù)本發(fā)明的第二方面,提供了另一種多層三維點(diǎn)云單層化的方法,包括:

步驟一、獲取三維點(diǎn)云模型;

步驟二、對于所述三維點(diǎn)云模型中的每一個點(diǎn),搜索第一閾值范圍內(nèi)的鄰點(diǎn),得到每個點(diǎn)的第一鄰點(diǎn)集合;根據(jù)所述第一鄰點(diǎn)集合確定模型在每個點(diǎn)位置的法向量作為對應(yīng)點(diǎn)的法向量;所述第一閾值的選取依據(jù)多層模型中相鄰兩層的間隙而定;

步驟三、對于所述三維點(diǎn)云模型中的第i個點(diǎn),搜索第二閾值范圍內(nèi)的鄰點(diǎn),得到由該點(diǎn)的鄰點(diǎn)ci1,ci2,……,cin組成的第二鄰點(diǎn)集合;所述第二閾值范圍依據(jù)多層模型中相鄰兩層的間隙以及計(jì)算速度的要求而定,且第二閾值范圍大于第一閾值范圍;

步驟四、計(jì)算所述三維點(diǎn)云模型中的第i個點(diǎn)到該點(diǎn)的第j個鄰點(diǎn)的向量rij,并計(jì)算該向量與所述第i個點(diǎn)的法向量ni所形成的夾角<ni,rij>;其中1≤j≤n;

步驟五、判斷所述第j個鄰點(diǎn)對應(yīng)的<ni,rij>是否小于第三閾值;若是,則將所述第j個鄰點(diǎn)cij從模型中去除,再選取下一個鄰點(diǎn),并轉(zhuǎn)至步驟四;若否,則直接選取下一個鄰點(diǎn),并轉(zhuǎn)至步驟四;

步驟六、重復(fù)步驟四至五,直至第i個點(diǎn)的所有鄰點(diǎn)處理完成,再將i加1,選取下一個點(diǎn)進(jìn)行處理;

步驟七、重復(fù)步驟三至六,直至所述三維點(diǎn)云模型中的所有點(diǎn)處理完成。

本發(fā)明的有益效果為:本發(fā)明對單層上點(diǎn)的密度相比與兩層之間間隔較大的多層殼體模型產(chǎn)生較好的單層化效果,且根據(jù)需求可以靈活的調(diào)整參數(shù)產(chǎn)生不同的效果,為點(diǎn)云模型的進(jìn)一步處理做了準(zhǔn)備。

附圖說明

圖1為本發(fā)明的具體實(shí)施方式一的流程圖;

圖2為本發(fā)明實(shí)施例的汽車保險杠模型進(jìn)行單層化處理前從斜前方觀察的原始模型圖;

圖3為本發(fā)明實(shí)施例的汽車保險杠模型進(jìn)行單層化處理后從斜前方觀察的模型效果圖;

圖4為圖2的模型從邊緣部分局部放大的效果圖;

圖5為圖3的模型從邊緣部分局部放大的效果圖

圖6為圖2的模型從斜后方觀察的效果圖;

圖7為圖3的模型從斜后方觀察的效果圖;

圖8為具體實(shí)施方式一步驟二中求取第i個點(diǎn)法線向量的示意圖;其中的點(diǎn)為從殼體側(cè)面觀察的點(diǎn)云模型中局部的點(diǎn),箭頭表示一個點(diǎn)對應(yīng)的法線向量;

圖9為具體實(shí)施方式一步驟四中求取夾角<ni,rij>的示意圖;其中兩個箭頭形成的夾角為<ni,rij>;

圖10為具體實(shí)施方式一步驟六中求取第i個點(diǎn)的法線向量ni與第j個鄰點(diǎn)的法線向量ncij的夾角<ni,ncij>的示意圖。

具體實(shí)施方式

具體實(shí)施方式一:本實(shí)施方式的多層三維點(diǎn)云單層化的方法,如圖1所示,包括:

步驟一、獲取三維點(diǎn)云模型。

步驟二、對于三維點(diǎn)云模型中的每一個點(diǎn),搜索第一閾值范圍內(nèi)的鄰點(diǎn),得到每個點(diǎn)的第一鄰點(diǎn)集合;根據(jù)第一鄰點(diǎn)集合確定模型在每個點(diǎn)位置的法向量作為對應(yīng)點(diǎn)的法向量;第一閾值的選取依據(jù)多層模型中相鄰兩層的間隙而定。

其中第一閾值范圍應(yīng)當(dāng)是一個比較小的范圍,目的是在一個小范圍內(nèi)確定一組鄰點(diǎn),通過最小二乘法對這些鄰點(diǎn)擬合出一個平面,這個平面的法向量就作為此第i個點(diǎn)的法向量。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)當(dāng)理解,第一閾值的選擇應(yīng)取決于多層模型中相鄰兩層的間隙,在保證第一鄰點(diǎn)中的點(diǎn)盡量都是位于同一層上的前提下,盡量擴(kuò)大第一閾值范圍。

由于平面的法向量可以有相反的兩個方向,因此計(jì)算出的第i個點(diǎn)的法線向量方向有兩個選擇,需要根據(jù)實(shí)際情況將各點(diǎn)法向量方向統(tǒng)一。具體方法是設(shè)置一個視點(diǎn),讓模型上各點(diǎn)的法向量全取接近與指向此視點(diǎn)的解,其中接近的標(biāo)準(zhǔn)為從模型點(diǎn)指向視點(diǎn)的向量與此模型點(diǎn)的法向量構(gòu)成夾角小于等于90度。

圖8示出了搜索第一閾值范圍內(nèi)鄰點(diǎn)確定法向量的示意圖。其中的點(diǎn)可以認(rèn)為是非封閉殼體從側(cè)面觀察的局部點(diǎn)云圖(可理解為截面圖),圖8左側(cè)的一豎列點(diǎn)是一層上的點(diǎn),右側(cè)的一豎列點(diǎn)為相鄰的另一層上的點(diǎn)。圓圈范圍表示從側(cè)面觀察的第i個點(diǎn)的第一閾值范圍,其中該圓圈中心的點(diǎn)即為第i個點(diǎn),圓圈內(nèi)的點(diǎn)表示從側(cè)面觀察的根據(jù)第一閾值范圍搜索到的第一鄰點(diǎn)集合??梢钥闯龅谝婚撝捣秶x取的應(yīng)當(dāng)盡量不包含相鄰層的點(diǎn)。根據(jù)第一鄰點(diǎn)集合可以確定該點(diǎn)法向量,箭頭方向代表從側(cè)面觀察的第i點(diǎn)的法向量方向。

步驟三、對于三維點(diǎn)云模型中的第i個點(diǎn),在第二閾值范圍內(nèi)進(jìn)行搜索,得到由該點(diǎn)的鄰點(diǎn)ci1,ci2,……cin組成的第二鄰點(diǎn)集合。第二閾值范圍依據(jù)多層模型中相鄰兩層的間隙以及計(jì)算速度的要求而定;且第二閾值范圍大于第一閾值范圍。

這樣設(shè)置的目的是,使第二鄰點(diǎn)集合中的點(diǎn)分布于盡量多層上,范圍越大效果越好,相應(yīng)的計(jì)算速度也就越慢,因此可以根據(jù)實(shí)際需要調(diào)整第二閾值的范圍。

步驟四、計(jì)算三維點(diǎn)云模型中的第i個點(diǎn)到該點(diǎn)的第j個鄰點(diǎn)的向量rij,并計(jì)算該向量與第i個點(diǎn)的法向量所形成的夾角<ni,rij>;其中1≤j≤n。

圖9示出了一種計(jì)算夾角<ni,rij>的示意圖。其中圓圈范圍表示從側(cè)面觀察的第二閾值的范圍,從圖9中可以看出這個范圍應(yīng)當(dāng)包含盡量多層上的點(diǎn)。其中指向斜上方的箭頭表示第i個點(diǎn)到其第j個鄰點(diǎn)的向量rij,水平指向右側(cè)的箭頭為第i個點(diǎn)的法向。這兩個箭頭形成的夾角即為<ni,rij>。

步驟五、判斷第j個鄰點(diǎn)對應(yīng)的<ni,rij>是否小于第三閾值;若是,則轉(zhuǎn)至步驟六;若否,則選取下一個鄰點(diǎn),并轉(zhuǎn)至步驟四。

步驟六、計(jì)算第i個點(diǎn)的法向量ni與該點(diǎn)對應(yīng)的第j個鄰點(diǎn)的法向量ncij的夾角<ni,ncij>,若<ni,ncij>小于第四閾值,則將第j個鄰點(diǎn)cij從模型中去除,再選取下一個鄰點(diǎn)處理。圖10中示出的即為第i個點(diǎn)的法向量ni與該點(diǎn)對應(yīng)的第j個鄰點(diǎn)的法向量ncij,它們的夾角即為<ni,ncij>。該步是用來要求待去除層與待保留層滿足一定的平行程度,防止錯誤的去除模型彎曲處的點(diǎn)。第四閾值越大,去除的越徹底,同時也意味著可能去除不應(yīng)去除的點(diǎn),因此可以根據(jù)實(shí)際需要選取合適的第四閾值。第四閾值也可以為某一角度的三角函數(shù)值并判斷<ni,ncij>的三角函數(shù)值與第四閾值的關(guān)系間接獲得角度關(guān)系。

步驟七、重復(fù)步驟四至六,直至第i個點(diǎn)的所有鄰點(diǎn)處理完成,再選取下一個點(diǎn)處理。

步驟八、重復(fù)步驟三至七,直至三維點(diǎn)云模型中的所有點(diǎn)處理完成。

具體實(shí)施方式二:本實(shí)施方式與具體實(shí)施方式一不同的是:步驟二中,選取的視點(diǎn)滿足如下條件:視點(diǎn)與需要保留的層上各點(diǎn)的平均距離相比與其他層更長。

其它步驟及參數(shù)與具體實(shí)施方式一相同。

具體實(shí)施方式三:本實(shí)施方式與具體實(shí)施方式一或二不同的是:步驟二中,可以使用kd‐tree算法進(jìn)行搜索,得到第一鄰點(diǎn)集合。本領(lǐng)域內(nèi)技術(shù)人員應(yīng)當(dāng)清楚的是,也可以選取其他算法進(jìn)行搜索。

其它步驟及參數(shù)與具體實(shí)施方式一或二相同。

具體實(shí)施方式四:本實(shí)施方式與具體實(shí)施方式一至三之一不同的是:步驟四中,計(jì)算三維點(diǎn)云模型中的第i個點(diǎn)到該點(diǎn)的第j個鄰點(diǎn)的向量rij的具體步驟為:

通過公式進(jìn)行計(jì)算;其中,xi,yi,zi為第i點(diǎn)的坐標(biāo),xcij,ycij,zcij為第i個點(diǎn)的第j個鄰點(diǎn)的坐標(biāo)。

其它步驟及參數(shù)與具體實(shí)施方式一至三之一相同。

具體實(shí)施方式五:本實(shí)施方式提供一種用于多層三維點(diǎn)云單層化的方法,包括:

步驟一、獲取三維點(diǎn)云模型。

步驟二、對于三維點(diǎn)云模型中的每一個點(diǎn),搜索第一閾值范圍內(nèi)的鄰點(diǎn),得到每個點(diǎn)的第一鄰點(diǎn)集合;根據(jù)第一鄰點(diǎn)集合確定模型在每個點(diǎn)位置的法向量作為對應(yīng)點(diǎn)的法向量;第一閾值的選取依據(jù)多層模型中相鄰兩層的間隙而定;

步驟三、對于三維點(diǎn)云模型中的第i個點(diǎn),在第二閾值范圍內(nèi)進(jìn)行搜索,得到由該點(diǎn)的鄰點(diǎn)ci1,ci2,……cin組成的第二鄰點(diǎn)集合;且第二閾值范圍大于第一閾值范圍。

步驟四、計(jì)算三維點(diǎn)云模型中的第i個點(diǎn)到該點(diǎn)的第j個鄰點(diǎn)的向量rij,并計(jì)算該向量與第i個點(diǎn)的法向量所形成的夾角<ni,rij>;其中1≤j≤n。

步驟五、判斷第j個鄰點(diǎn)對應(yīng)的<ni,rij>是否小于第三閾值;若是,則將所述第j個鄰點(diǎn)cij從模型中去除,再選取下一個鄰點(diǎn)處理;若否,則選取下一個鄰點(diǎn),并轉(zhuǎn)至步驟四。

步驟六、重復(fù)步驟四至五,直至第i個點(diǎn)的所有鄰點(diǎn)處理完成,再將i加1,選取下一個點(diǎn)進(jìn)行處理。

步驟七、重復(fù)步驟三至六,直至三維點(diǎn)云模型中的所有點(diǎn)處理完成。

本實(shí)施方式與具體實(shí)施方式一的區(qū)別在于,不需要比較<ni,ncij>與第四閾值。這樣設(shè)置是考慮到如果具體實(shí)施方式一中的第四閾值大于180度時,<ni,ncij>是一定會小于該閾值的,因此此時不需要進(jìn)行判斷,可以減少耗時。

具體實(shí)施方式六:本實(shí)施方式與具體實(shí)施方式五不同的是,步驟二執(zhí)行完成后,還包括如下步驟:

步驟二一、設(shè)置一個視點(diǎn);

步驟二二、對于三維點(diǎn)云模型中的每一個點(diǎn),若其指向所述視點(diǎn)的向量與其法向量構(gòu)成的夾角大于90度,則將其法向量方向取反。

本實(shí)施方式與具體實(shí)施方式二對應(yīng)相似,此處不再詳述。

其它步驟及參數(shù)與具體實(shí)施方式五相同。

具體實(shí)施方式七:本實(shí)施方式與具體實(shí)施方式六或七不同的是,步驟二一中,選取的視點(diǎn)滿足如下條件:視點(diǎn)與需要保留的層上各點(diǎn)的平均距離相比與其他層更長。

本實(shí)施方式與具體實(shí)施方式三對應(yīng)相似,此處不再詳述。

其它步驟及參數(shù)與具體實(shí)施方式五或六相同。

具體實(shí)施方式八:本實(shí)施方式與具體實(shí)施方式五至七之一不同的是,步驟二中,可以使用kd‐tree算法進(jìn)行搜索,得到第一鄰點(diǎn)集合。本實(shí)施方式僅提供一種具體的算法,也可以使用其他同類的算法進(jìn)行搜索。

本實(shí)施方式與具體實(shí)施方式三對應(yīng)相似,此處不再詳述。

其它步驟及參數(shù)與具體實(shí)施方式五至七之一相同。

具體實(shí)施方式九:本實(shí)施方式與具體實(shí)施方式五至八之一不同的是,

步驟四中,計(jì)算三維點(diǎn)云模型中的第i個點(diǎn)到該點(diǎn)的第j個鄰點(diǎn)的向量rij的具體步驟為:

通過公式進(jìn)行計(jì)算;其中,xi,yi,zi為第i點(diǎn)的坐標(biāo),xcij,ycij,zcij為第i個點(diǎn)的第j個鄰點(diǎn)的坐標(biāo)。

其它步驟及參數(shù)與具體實(shí)施方式五至八之一相同。

實(shí)施例

下面通過實(shí)施例對本發(fā)明做進(jìn)一步詳細(xì)說明。

1.讀入點(diǎn)云信息,獲取各點(diǎn)的位置坐標(biāo),每個點(diǎn)的位置坐標(biāo)存在一個三維的位置向量中。

2.對于第i個點(diǎn),使用kd‐tree方法搜索距離0.03米范圍內(nèi)的鄰點(diǎn),并使用最小二乘法,通過這些鄰點(diǎn)確定法向量ni,遍歷所有點(diǎn),計(jì)算出所有點(diǎn)的法向量。求取模型所有點(diǎn)位置向量的平均值,作為視點(diǎn),以此翻轉(zhuǎn)法向量。翻轉(zhuǎn)意味著將非接近指向視點(diǎn)的法線向量方向取反,使其接近指向視點(diǎn)。

3.對于第i個點(diǎn),使用kd‐tree搜索其一個0.05米范圍內(nèi)的鄰點(diǎn)ci1,ci2,……cin;

4.通過位置向量相減計(jì)算第i個點(diǎn)到其第j個鄰點(diǎn)的向量rij,計(jì)算第i個點(diǎn)的法線向量與rij所成的夾角<ni,rij>,使用兩向量的點(diǎn)積除以兩向量的模的積,可以求得兩向量夾角的余弦值,為方便起見,不將其轉(zhuǎn)化為角度,直接判斷余弦值。.

5.判斷第j個鄰點(diǎn)對應(yīng)的<ni,rij>的余弦值是否大于閾值0.92,若是則進(jìn)入步驟6,否則對下一個鄰點(diǎn)進(jìn)行此步處理;

6.使用與步驟四相同的方法計(jì)算法向量ni與第j個鄰點(diǎn)的法向量ncij的夾角<ni,ncij>的余弦,如果該余弦大于0.4則說明對應(yīng)的鄰點(diǎn)cij位于需要去除的一層中,將其移除;

7.重復(fù)第4~6步,直至處理完第i個點(diǎn)的全部鄰點(diǎn)。

8.重復(fù)第3~7步,直至處理完全部點(diǎn)的全部鄰點(diǎn)。

使用上述實(shí)施例處理汽車保險杠模型的效果如圖2至圖7所示。從圖中可以看出,處理后的模型中,冗余的點(diǎn)減少,模型從多層轉(zhuǎn)換為了單層。實(shí)施例中選取的范圍閾值、余弦閾值是經(jīng)過多次測試后得出的,可以保證在盡可能多地剔除多余點(diǎn)的同時維持待保留層上的點(diǎn)不被剔除。由于汽車保險杠的形狀是有較高的相似性的,因此本實(shí)施例中的各個參數(shù)可以用于處理其他的汽車保險杠模型。

本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,本領(lǐng)域技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1