一種果樹(shù)枝干交互式三維重建方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種果樹(shù)枝干交互式三維重建方法及系統(tǒng),包括以下步驟:獲取果樹(shù)的三維點(diǎn)云,對(duì)所述三維點(diǎn)云進(jìn)行數(shù)據(jù)預(yù)處理得到樹(shù)的根部半徑取值和樹(shù)的枝條最小半徑取值;根據(jù)接收到的用戶設(shè)置數(shù)據(jù)從所述三維點(diǎn)云中提取樹(shù)的枝干骨架線;對(duì)提取到的所述枝干骨架線進(jìn)行優(yōu)化處理;根據(jù)預(yù)設(shè)規(guī)則以及所述樹(shù)的根部半徑取值和樹(shù)的枝條最小半徑取值計(jì)算優(yōu)化后的所述枝干骨架線中每條骨架線的半徑取值;根據(jù)優(yōu)化后的所述枝干骨架線以及每條骨架線的半徑取值生成樹(shù)木枝干的三維網(wǎng)格模型。本發(fā)明避免全自動(dòng)的提取方法存在速度慢、誤差大等缺點(diǎn),從而達(dá)到通過(guò)較少的人工交互來(lái)提高速度和準(zhǔn)確性的目的,實(shí)現(xiàn)樹(shù)木枝干結(jié)構(gòu)快速、準(zhǔn)確的三維重建。
【專利說(shuō)明】一種果樹(shù)枝干交互式三維重建方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及三維圖形處理【技術(shù)領(lǐng)域】,尤其涉及一種果樹(shù)枝干交互式三維重建方法及系統(tǒng)。
【背景技術(shù)】
[0002]近年來(lái),從激光三維掃描儀獲取的三維點(diǎn)云數(shù)據(jù)中進(jìn)行樹(shù)木形態(tài)結(jié)構(gòu)的提取和計(jì)算分析逐漸成為農(nóng)林研究的熱點(diǎn)問(wèn)題。但是,利用激光三維掃描儀對(duì)樹(shù)木進(jìn)行掃描獲取得到的只是非結(jié)構(gòu)化的離散三維點(diǎn)云,尚無(wú)法直接從這些三維點(diǎn)云中得到樹(shù)木的樹(shù)干半徑、枝量、枝條密度、總?cè)~面積等指標(biāo),也尚未形成樹(shù)木的三維模型。因此,如何從三維點(diǎn)云中進(jìn)行樹(shù)木的三維重建是一個(gè)重要的問(wèn)題。
[0003]枝干是果樹(shù)形態(tài)結(jié)構(gòu)的重要組成部分,在果樹(shù)樹(shù)形塑造中起著決定性的作用。因此,樹(shù)木枝干的準(zhǔn)確提取和三維重建是實(shí)現(xiàn)基于實(shí)測(cè)數(shù)據(jù)的樹(shù)木形態(tài)結(jié)構(gòu)三維重建的關(guān)鍵。許多研究者圍繞該問(wèn)題開(kāi)展了大量研究,提出了一些解決方法。但是雖然目前關(guān)于基于三維測(cè)量數(shù)據(jù)的果樹(shù)枝干骨架提取方面的有了一些方法,但由于果樹(shù)形態(tài)結(jié)構(gòu)特有的復(fù)雜性,特別是枝葉之間的遮擋現(xiàn)象較為嚴(yán)重,這些方法在實(shí)現(xiàn)果樹(shù)冠層枝干骨架的自動(dòng)、準(zhǔn)確提取時(shí)仍然存在不足,具體表現(xiàn)如下:
[0004]利用現(xiàn)有大型三維激光掃描儀獲取樹(shù)木的點(diǎn)云數(shù)據(jù),并進(jìn)而進(jìn)行樹(shù)木枝干骨架的提取和三維重建。這些方法都存在一個(gè)共同的缺點(diǎn):這些方法均以非果樹(shù)類樹(shù)木為實(shí)驗(yàn)對(duì)象,樹(shù)簾較高,假定樹(shù)干的主要枝干沒(méi)有被遮擋;而一般地,果樹(shù)冠層中的枝葉更加繁茂,樹(shù)簾更低,從外部看,大部分枝條都存在被遮擋的情況,導(dǎo)致在三維激光掃描儀獲取的三維點(diǎn)云中,枝干信息缺失嚴(yán)重,因此以上這些方法用來(lái)進(jìn)行果樹(shù)三維點(diǎn)云的枝干骨架提取時(shí),將難以得到較好的結(jié)果。而基于多尺度測(cè)量數(shù)據(jù)的果樹(shù)形態(tài)結(jié)構(gòu)三維重建方法在進(jìn)行果樹(shù)枝干骨架提取時(shí),沒(méi)有對(duì)三維點(diǎn)云進(jìn)行分割,因此需要在整株果樹(shù)的三維點(diǎn)云數(shù)據(jù)中進(jìn)行提取,算法的處理速度較慢,同時(shí)由于冠層樹(shù)葉遮擋造成的數(shù)據(jù)缺失嚴(yán)重,提取到的枝條骨架的準(zhǔn)確性也將受影響;而且該方法在提取果樹(shù)枝干骨架時(shí),僅提取主要枝干的骨架,而幼枝是后期通過(guò)該類果樹(shù)幼枝的冠層空間分布模型增加的,因此也降低了最終重建的果樹(shù)三維模型的準(zhǔn)確性。
【發(fā)明內(nèi)容】
[0005]本發(fā)明所要解決的技術(shù)問(wèn)題是由于果樹(shù)形態(tài)結(jié)構(gòu)特有的復(fù)雜性,特別是枝葉之間的遮擋現(xiàn)象較為嚴(yán)重,從而導(dǎo)致現(xiàn)有技術(shù)在實(shí)現(xiàn)果樹(shù)冠層枝干骨架提取時(shí)在處理速度和準(zhǔn)確性方面存在不足的問(wèn)題。
[0006]為解決上述技術(shù)問(wèn)題,本發(fā)明提出了一種果樹(shù)枝干交互式三維重建方法,包括以下步驟:
[0007]獲取果樹(shù)的三維點(diǎn)云,對(duì)所述三維點(diǎn)云進(jìn)行數(shù)據(jù)預(yù)處理得到樹(shù)的根部半徑取值和樹(shù)的枝條最小半徑取值;[0008]根據(jù)接收到的用戶設(shè)置數(shù)據(jù)從所述三維點(diǎn)云中提取樹(shù)的枝干骨架線;
[0009]對(duì)提取到的所述枝干骨架線進(jìn)行優(yōu)化處理;
[0010]根據(jù)預(yù)設(shè)規(guī)則以及所述樹(shù)的根部半徑取值和樹(shù)的枝條最小半徑取值計(jì)算優(yōu)化后的所述枝干骨架線中每條骨架線的半徑取值;
[0011]根據(jù)優(yōu)化后的所述枝干骨架線以及每條骨架線的半徑取值生成樹(shù)木枝干的三維網(wǎng)格模型。
[0012]優(yōu)選地,所述方法還包括對(duì)所述三維點(diǎn)云中的樹(shù)的枝條數(shù)據(jù)進(jìn)行分類,其中與樹(shù)干直接連接的枝條為一級(jí)枝條,與所述一級(jí)枝條直接連接的枝條為二級(jí)枝條。
[0013]優(yōu)選地,所述對(duì)所述三維點(diǎn)云進(jìn)行數(shù)據(jù)預(yù)處理得到三維模型中樹(shù)的根部半徑取值和樹(shù)的枝條最小半徑取值,具體包括:
[0014]選取所述三維點(diǎn)云中位于樹(shù)根部位置的一個(gè)點(diǎn)V ;
[0015]在所述三維點(diǎn)云中找出所有與點(diǎn)V直線距離不大于20厘米、且其z坐標(biāo)值與點(diǎn)V的z坐標(biāo)值之差的絕對(duì)值不大于I厘米的點(diǎn),并將這些點(diǎn)加入數(shù)據(jù)集W中;
[0016]計(jì)算數(shù)據(jù)集Dr的中心點(diǎn)坐標(biāo)Vto以及所述中心點(diǎn)坐標(biāo)Vto與數(shù)據(jù)集Dr中所有數(shù)據(jù)點(diǎn)的平均距離,所述平均距離即為樹(shù)的根部半徑取值;
[0017]接收用戶的最小半徑取值設(shè)置數(shù)據(jù),根據(jù)所述設(shè)置數(shù)據(jù)設(shè)置枝條最小半徑取值。
[0018]優(yōu)選地,所述根據(jù)接收到的用戶設(shè)置數(shù)據(jù)從所述三維點(diǎn)云中提取樹(shù)的枝干骨架線,具體包括:
[0019]接收用戶的用戶設(shè)置數(shù)據(jù);
[0020]根據(jù)接收到的用戶設(shè)置數(shù)據(jù)在所述三維點(diǎn)云中提取樹(shù)干的骨架線;
[0021]根據(jù)接收到的用戶設(shè)置數(shù)據(jù)在所述三維點(diǎn)云中提取枝條的骨架線,所述枝條包括一級(jí)枝條和二級(jí)枝條。
[0022]優(yōu)選地,所述根據(jù)接收到的用戶設(shè)置數(shù)據(jù)在所述三維點(diǎn)云中提取樹(shù)干的骨架線,具體包括:
[0023]根據(jù)接收到的用戶設(shè)置數(shù)據(jù)在所述三維點(diǎn)云中選取代表樹(shù)干根部的數(shù)據(jù)點(diǎn)和代表樹(shù)干頂部的數(shù)據(jù)點(diǎn);
[0024]所述代表樹(shù)干根部的數(shù)據(jù)點(diǎn)和代表樹(shù)干頂部的數(shù)據(jù)點(diǎn)從所述三維點(diǎn)云中回溯計(jì)算樹(shù)干的骨架線。
[0025]優(yōu)選地,所述根據(jù)預(yù)設(shè)規(guī)則以及所述根部半徑取值和樹(shù)的枝條最小半徑取值計(jì)算優(yōu)化后的所述枝干骨架線中每條骨架線的半徑取值,具體包括:
[0026]所述根據(jù)預(yù)設(shè)規(guī)則以及所述樹(shù)的枝條最小半徑取值計(jì)算優(yōu)化后的所述枝干骨架線中二級(jí)枝條的底部半徑取值和頂部半徑取值;
[0027]所述根據(jù)預(yù)設(shè)規(guī)則以及所述樹(shù)的枝條最小半徑取值計(jì)算優(yōu)化后的所述枝干骨架線中一級(jí)枝條的底部半徑取值和頂部半徑取值;
[0028]根據(jù)預(yù)設(shè)規(guī)則以及所述根部半徑取值和樹(shù)的枝條最小半徑取值計(jì)算優(yōu)化后的所述枝干骨架線中樹(shù)干的底部半徑取值和頂部半徑取值。
[0029]優(yōu)選地,所述根據(jù)優(yōu)化后的所述枝干骨架線以及每條骨架線的半徑取值生成樹(shù)木枝干的三維網(wǎng)格模型,具體為:
[0030]根據(jù)優(yōu)化后的所述枝干骨架線以及每條骨架線的半徑取值采用隱式曲面進(jìn)行網(wǎng)格化生成樹(shù)木枝干的三維網(wǎng)格模型。
[0031]此外,本發(fā)明還提出了一種果樹(shù)枝干交互式三維重建系統(tǒng),該系統(tǒng)包括:
[0032]獲取和預(yù)處理模塊,用于獲取樹(shù)的三維點(diǎn)云,對(duì)所述三維點(diǎn)云進(jìn)行數(shù)據(jù)預(yù)處理得到樹(shù)的根部半徑取值和樹(shù)的枝條最小半徑取值;
[0033]提取模塊,用于根據(jù)接收到的用戶設(shè)置數(shù)據(jù)從所述三維點(diǎn)云中提取樹(shù)的枝干骨架線.-^4 ,
[0034]優(yōu)化處理模塊,用于對(duì)提取到的所述枝干骨架線進(jìn)行優(yōu)化處理;
[0035]半徑計(jì)算模塊,用于根據(jù)預(yù)設(shè)規(guī)則以及所述樹(shù)的根部半徑取值和樹(shù)的枝條最小半徑取值計(jì)算優(yōu)化后的所述枝干骨架線中每條骨架線的半徑取值;
[0036]生成模塊,用于根據(jù)優(yōu)化后的所述枝干骨架線以及每條骨架線的半徑取值生成樹(shù)木枝干的三維網(wǎng)格模型。
[0037]優(yōu)選地,所述系統(tǒng)還包括枝條分類模塊;
[0038]枝條分類模塊,用于對(duì)所述三維點(diǎn)云中的樹(shù)的枝條數(shù)據(jù)進(jìn)行分類,其中與樹(shù)干直接連接的枝條為一級(jí)枝條,與所述一級(jí)枝條直接連接的枝條為二級(jí)枝條。
[0039]通過(guò)采用本發(fā)明所公開(kāi)的一種果樹(shù)枝干交互式三維重建方法及系統(tǒng),用戶通過(guò)用戶設(shè)置數(shù)據(jù)在樹(shù)的三維點(diǎn)云數(shù)據(jù)中選取表明枝條大致方向的起點(diǎn)和終點(diǎn)位置,然后利用算法自動(dòng)從三維點(diǎn)云中回溯提取出枝條的骨架線,以避免全自動(dòng)的提取方法存在的需要反復(fù)從整個(gè)三維點(diǎn)云數(shù)據(jù)集中進(jìn)行搜索所帶來(lái)的速度慢、誤差大等缺點(diǎn),從而達(dá)到通過(guò)較少的人工交互來(lái)提高速度和準(zhǔn)確性的目的。
【專利附圖】
【附圖說(shuō)明】`
[0040]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0041]圖1:是本發(fā)明一種果樹(shù)枝干交互式三維重建方法的流程圖;
[0042]圖2:是本發(fā)明實(shí)施例中果樹(shù)枝干的三維網(wǎng)格模型的示意圖;
[0043]圖3:是本發(fā)明一種果樹(shù)枝干交互式三維重建系統(tǒng)的模塊圖。
【具體實(shí)施方式】
[0044]下面將結(jié)合本發(fā)明的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0045]本發(fā)明實(shí)施例中提出了本發(fā)明提出了一種果樹(shù)枝干交互式三維重建方法,如圖1所示,包括以下步驟:
[0046]SlOl獲取果樹(shù)的三維點(diǎn)云,對(duì)所述三維點(diǎn)云進(jìn)行數(shù)據(jù)預(yù)處理得到樹(shù)的根部半徑取值和樹(shù)的枝條最小半徑取值;
[0047]S102根據(jù)接收到的用戶設(shè)置數(shù)據(jù)從所述三維點(diǎn)云中提取樹(shù)的枝干骨架線;[0048]S103對(duì)提取到的所述枝干骨架線進(jìn)行優(yōu)化處理;
[0049]S104根據(jù)預(yù)設(shè)規(guī)則以及所述樹(shù)的根部半徑取值和樹(shù)的枝條最小半徑取值計(jì)算優(yōu)化后的所述枝干骨架線中每條骨架線的半徑取值;
[0050]S105根據(jù)優(yōu)化后的所述枝干骨架線以及每條骨架線的半徑取值生成樹(shù)木枝干的三維網(wǎng)格模型。
[0051]優(yōu)選地,所述方法還包括對(duì)所述三維點(diǎn)云中的樹(shù)的枝條數(shù)據(jù)進(jìn)行分類,其中與樹(shù)干直接連接的枝條為一級(jí)枝條,與所述一級(jí)枝條直接連接的枝條為二級(jí)枝條。
[0052]優(yōu)選地,所述對(duì)所述三維點(diǎn)云進(jìn)行數(shù)據(jù)預(yù)處理得到三維模型中樹(shù)的根部半徑取值和樹(shù)的枝條最小半徑取值,具體包括:
[0053]選取所述三維點(diǎn)云中位于樹(shù)根部位置的一個(gè)點(diǎn)V ;
[0054]在所述三維點(diǎn)云中找出所有與點(diǎn)V直線距離不大于20厘米、且其z坐標(biāo)值與點(diǎn)V的z坐標(biāo)值之差的絕對(duì)值不大于I厘米的點(diǎn),并將這些點(diǎn)加入數(shù)據(jù)集W中;
[0055]計(jì)算數(shù)據(jù)集^的中心點(diǎn)坐標(biāo)Vto以及所述中心點(diǎn)坐標(biāo)Vto與數(shù)據(jù)集^中所有數(shù)據(jù)點(diǎn)的平均距離,所述平均距離即為樹(shù)的根部半徑取值;
[0056]接收用戶的最小半徑取值設(shè)置數(shù)據(jù),根據(jù)所述設(shè)置數(shù)據(jù)設(shè)置枝條最小半徑取值。
[0057]本發(fā)明實(shí)施例中,數(shù)據(jù)預(yù)處理具體為對(duì)于從真實(shí)果樹(shù)上獲取的三維點(diǎn)云數(shù)據(jù),進(jìn)行如下2個(gè)步驟的預(yù)處理:
[0058]S11:計(jì)算根部半徑rM()t。方法為用戶首先通過(guò)手工選取三維點(diǎn)云中位于根部位置的一個(gè)點(diǎn)V,然后在整個(gè)三維 點(diǎn)云中找出與點(diǎn)V直線距離不大于20厘米、且其所有z坐標(biāo)值與點(diǎn)V的Z坐標(biāo)值之差的絕對(duì)值不大于Icm的點(diǎn),并將這些點(diǎn)加入數(shù)據(jù)集的D1^中;計(jì)算數(shù)據(jù)集的^的中心點(diǎn)坐標(biāo)I,然后計(jì)算I與^中所有數(shù)據(jù)點(diǎn)的平均距離,該平均距離即為根部半徑rrat。
[0059]S12:設(shè)置枝條最小半徑rmin。通過(guò)用戶手工輸入的方式設(shè)置rmin的值。
[0060]優(yōu)選地,所述根據(jù)接收到的用戶設(shè)置數(shù)據(jù)從所述三維點(diǎn)云中提取樹(shù)的枝干骨架線,具體包括:
[0061]接收用戶的用戶設(shè)置數(shù)據(jù);
[0062]根據(jù)接收到的用戶設(shè)置數(shù)據(jù)在所述三維點(diǎn)云中提取樹(shù)干的骨架線;
[0063]根據(jù)接收到的用戶設(shè)置數(shù)據(jù)在所述三維點(diǎn)云中提取枝條的骨架線,所述枝條包括一級(jí)枝條和二級(jí)枝條。
[0064]優(yōu)選地,所述根據(jù)接收到的用戶設(shè)置數(shù)據(jù)在所述三維點(diǎn)云中提取樹(shù)干的骨架線,具體包括:
[0065]根據(jù)接收到的用戶設(shè)置數(shù)據(jù)在所述三維點(diǎn)云中選取代表樹(shù)干根部的數(shù)據(jù)點(diǎn)和代表樹(shù)干頂部的數(shù)據(jù)點(diǎn);
[0066]所述代表樹(shù)干根部的數(shù)據(jù)點(diǎn)和代表樹(shù)干頂部的數(shù)據(jù)點(diǎn)從所述三維點(diǎn)云中回溯計(jì)算樹(shù)干的骨架線。
[0067]優(yōu)選地,所述根據(jù)接收到的用戶設(shè)置數(shù)據(jù)在所述三維點(diǎn)云中提取枝條的骨架線,具體包括:
[0068]根據(jù)接收到的用戶設(shè)置數(shù)據(jù)在所述三維點(diǎn)云中選取代表枝條根部的數(shù)據(jù)點(diǎn)和代表枝條頂部的數(shù)據(jù)點(diǎn);[0069]根據(jù)代表枝條根部的數(shù)據(jù)點(diǎn)和代表枝條頂部的數(shù)據(jù)點(diǎn)從所述三維點(diǎn)云中回溯計(jì)算枝條的骨架線。
[0070]本發(fā)明實(shí)施例中從果樹(shù)的三維點(diǎn)云中提取樹(shù)木的枝干骨架,具體過(guò)程包括如下步驟:
[0071]S21:樹(shù)干骨架線的提取,包括如下步驟:
[0072](1)用戶通過(guò)手工選擇的方式,在果樹(shù)的三維點(diǎn)云中分別選取代表樹(shù)干根部的數(shù)據(jù)點(diǎn)和代表樹(shù)干頂部的數(shù)據(jù)點(diǎn)vtip。
[0073](2)查找三維點(diǎn)云中與點(diǎn)v_的距離不大于2Xr_t的點(diǎn),并將這些點(diǎn)加入數(shù)據(jù)集的Dtnip中;然后計(jì)算數(shù)據(jù)集Dtnip的中心點(diǎn)坐標(biāo)Vl。
[0074](3)將數(shù)據(jù)集Dtmp清空。在線段LV1Vtip上距離點(diǎn)V1為5cm的地方選取一點(diǎn)Vtmp,查找三維點(diǎn)云中與點(diǎn)ν_的距離不大于2Xr_的點(diǎn),并將這些點(diǎn)加入數(shù)據(jù)集的Dtnip中;然后計(jì)算數(shù)據(jù)集Dtmp的中心點(diǎn)坐標(biāo)V2。
[0075](4)將數(shù)據(jù)集Dtmp清空。在線段LV2Vtip上距離點(diǎn)V2為5cm的地方選取一點(diǎn)Vtmp,查找三維點(diǎn)云中與點(diǎn)ν_的距離不大于2Xr_的點(diǎn),并將這些點(diǎn)加入數(shù)據(jù)集的Dtnip中;然后計(jì)算數(shù)據(jù)集Dtmp的中心點(diǎn)坐標(biāo)V3。
[0076](5)重復(fù)上述步驟(4),計(jì)算得到一系列的坐標(biāo)點(diǎn)v4、v5、…、vn。
[0077](6)將坐標(biāo)點(diǎn)Vl、v2、…、vn連接起來(lái),即可形成樹(shù)干骨架線。同時(shí)將樹(shù)干骨架的枝條類型標(biāo)記為0,并將該骨架線加入數(shù)據(jù)集S中。
[0078]S22: 一級(jí)枝條的骨架線提取,即提取與主干直接連接的枝條,其處理過(guò)程如下:
[0079]( I)在果樹(shù)的三維點(diǎn)云中,通過(guò)交互旋轉(zhuǎn)三維點(diǎn)云的方式發(fā)現(xiàn)每條一級(jí)枝條的大致空間走向。
[0080](2)對(duì)每條一級(jí)枝條,通過(guò)手工選取的方式在果樹(shù)的三維點(diǎn)云中分別選取代表枝條根部的數(shù)據(jù)點(diǎn)Vrajt和代表枝條頂部的數(shù)據(jù)點(diǎn)Vtip。
[0081](3)采用與S21步驟類似的方法,計(jì)算該枝條的中心坐標(biāo)點(diǎn)vn、vi2、…、vin。將這些中心坐標(biāo)點(diǎn)連接起來(lái),即可形成該枝條的骨架線,同時(shí)將該枝條骨架的枝條類型標(biāo)記為I,然后將該骨架線加入數(shù)據(jù)集S中。
[0082](4)重復(fù)上述步驟,直到所有一級(jí)枝條的骨架全部被提取。
[0083]S23: 二級(jí)枝條的骨架線提取。即提取與一級(jí)枝條直接連接的子枝條,其處理過(guò)程包括:
[0084](1)通過(guò)手工選取的方式在果樹(shù)的三維點(diǎn)云中選取代表1根枝條頂部的數(shù)據(jù)點(diǎn)
Vtip0
[0085](2)查找與點(diǎn)Vtip直線距離最近的一級(jí)枝條骨架線,并記Vtip與該骨架線最近處的交點(diǎn)坐標(biāo)為νερ。
[0086](3)將數(shù)據(jù)集Dtnip清空。查找三維點(diǎn)云中與點(diǎn)Vtip的距離不大于r_的點(diǎn),并將這些點(diǎn)加入數(shù)據(jù)集的Dtnip中;然后計(jì)算數(shù)據(jù)集Dtnip的中心點(diǎn)坐標(biāo)νη。
[0087](4)將數(shù)據(jù)集Dtmp清空。在線段LVilVep上距離點(diǎn)Vil為5cm的地方選取一點(diǎn)Vtmp,查找三維點(diǎn)云中與點(diǎn)ν_的距離不大于2Xr_的點(diǎn),并將這些點(diǎn)加入數(shù)據(jù)集的Dtnip中;然后計(jì)算數(shù)據(jù)集Dtnip的中心點(diǎn)坐標(biāo)vi2。
[0088](5)將數(shù)據(jù)集Dtmp清空。在線段Lvi2vtip上距離點(diǎn)Vi2為5cm的地方選取一點(diǎn)Vtmp,查找三維點(diǎn)云中與點(diǎn)Vtnip的距離不大于2XR_的點(diǎn),并將這些點(diǎn)加入數(shù)據(jù)集的Dtnip中;然后計(jì)算數(shù)據(jù)集Dtnip的中心點(diǎn)坐標(biāo)vi3。
[0089](6)重復(fù)上述步驟(5),計(jì)算得到一系列的坐標(biāo)點(diǎn)vi4、vi5、…、vin。
[0090](7)將坐標(biāo)點(diǎn)vin、Vin^1,…、Vil連接起來(lái),即可形成該枝條的骨架線,同時(shí)將該枝條骨架的枝條類型標(biāo)記為2,然后將該骨架線加入數(shù)據(jù)集S中。
[0091]本發(fā)明實(shí)施例中還包括對(duì)枝干骨架線進(jìn)行優(yōu)化處理,目的是將不連接的骨架線連接起來(lái),其處理步驟如下:
[0092]S31: 一級(jí)枝條優(yōu)化。對(duì)每個(gè)枝條類型為I的一級(jí)枝條骨架線,執(zhí)行如下操作:
[0093](I)計(jì)算該枝條骨架線起點(diǎn)坐標(biāo)到樹(shù)干骨架線(枝條類型為O)的距離最近點(diǎn)vmd。
[0094](2)將該枝條骨架線起點(diǎn)坐標(biāo)的值更新為點(diǎn)Vmd的值。
[0095]S32: 二級(jí)枝條優(yōu)化。對(duì)每個(gè)枝條類型為2的二級(jí)枝條骨架線,執(zhí)行如下操作:
[0096](I)計(jì)算該枝條骨架線起點(diǎn)坐標(biāo)到一級(jí)枝條骨架線(枝條類型為I)的距離最近點(diǎn)
Vmd0
[0097](2)將該枝條骨架線起點(diǎn)坐標(biāo)的值更新為點(diǎn)Vmd的值。
[0098]優(yōu)選地,所述根據(jù)預(yù)設(shè)規(guī)則以及所述根部半徑取值和樹(shù)的枝條最小半徑取值計(jì)算優(yōu)化后的所述枝干骨架線中每條骨架線的半徑取值,具體包括:
[0099]所述根據(jù)預(yù)設(shè)規(guī)則以及所述`樹(shù)的枝條最小半徑取值計(jì)算優(yōu)化后的所述枝干骨架線中二級(jí)枝條的底部半徑取值和頂部半徑取值;
[0100]所述根據(jù)預(yù)設(shè)規(guī)則以及所述樹(shù)的枝條最小半徑取值計(jì)算優(yōu)化后的所述枝干骨架線中一級(jí)枝條的底部半徑取值和頂部半徑取值;
[0101]根據(jù)預(yù)設(shè)規(guī)則以及所述根部半徑取值和樹(shù)的枝條最小半徑取值計(jì)算優(yōu)化后的所述枝干骨架線中樹(shù)干的底部半徑取值和頂部半徑取值。
[0102]本發(fā)明實(shí)施例中根據(jù)預(yù)設(shè)規(guī)則以及所述根部半徑取值和樹(shù)的枝條最小半徑取值計(jì)算優(yōu)化后的所述枝干骨架線中每條骨架線的半徑取值,得到每根枝條的半徑,其處理步驟如下:
[0103]S41:建立枝干骨架的拓?fù)潢P(guān)系,方法為:
[0104](I)對(duì)數(shù)據(jù)集S中的每條骨架線,按順序進(jìn)行編號(hào)。
[0105](2)設(shè)置骨架線父子關(guān)系。對(duì)數(shù)據(jù)集S中所有枝條類型為I的骨架線,將其母枝編號(hào)設(shè)為O ;對(duì)每條枝條類型為2的骨架線Lb2,在數(shù)據(jù)集S中查找離該骨架線起點(diǎn)坐標(biāo)最近且枝條類型為I的骨架線,假設(shè)找到的骨架線為L(zhǎng)b2,則將骨架線Lb2的母枝編號(hào)設(shè)為骨架線Lb2的編號(hào)。
[0106]S42:計(jì)算二級(jí)枝條的半徑,方法為:
[0107](I)計(jì)算數(shù)據(jù)集S中的每條枝條類型為2的骨架線的長(zhǎng)度,并記錄下最小的長(zhǎng)度值lb2—min0
[0108](2)對(duì)數(shù)據(jù)集S中的每條枝條類型為2的骨架線,設(shè)置該枝條的頂部半徑為rmin,然后計(jì)算該枝條骨架線的長(zhǎng)度length,貝U該枝條的底部半徑為^ x 1.1 x rmm。
b2 _min
[0109]S42:計(jì)算一級(jí)枝條的半徑,方法為:
[0110](I)計(jì)算數(shù)據(jù)集S中的每條枝條類型為I的骨架線的長(zhǎng)度,并記錄下最小的長(zhǎng)度值lbl—min0
[0111](2)對(duì)數(shù)據(jù)集S中每條枝條類型為I的骨架線Lbl,執(zhí)行如下操作:
[0112]a.設(shè)置該枝條Lbl的頂部半徑為2Xrmin ;
[0113]b.清空數(shù)據(jù)集Sbl,然后查找數(shù)據(jù)集S中枝條類型為2且母枝編號(hào)為骨架線Lbl的編號(hào)相同的骨架線,并將這些骨架線加入數(shù)據(jù)集Sbl中。
[0114]C.若數(shù)據(jù)集Sbl中的枝條骨架線個(gè)數(shù)不為0,則令ri 為數(shù)據(jù)集Sbl中第i根枝條骨架線的底部半徑,則枝條Lbl的底部半徑為
【權(quán)利要求】
1.一種果樹(shù)枝干交互式三維重建方法,其特征在于,包括以下步驟: 獲取果樹(shù)的三維點(diǎn)云,對(duì)所述三維點(diǎn)云進(jìn)行數(shù)據(jù)預(yù)處理得到樹(shù)的根部半徑取值和樹(shù)的枝條最小半徑取值; 根據(jù)接收到的用戶設(shè)置數(shù)據(jù)從所述三維點(diǎn)云中提取樹(shù)的枝干骨架線; 對(duì)提取到的所述枝干骨架線進(jìn)行優(yōu)化處理; 根據(jù)預(yù)設(shè)規(guī)則以及所述樹(shù)的根部半徑取值和樹(shù)的枝條最小半徑取值計(jì)算優(yōu)化后的所述枝干骨架線中每條骨架線的半徑取值; 根據(jù)優(yōu)化后的所述枝干骨架線以及每條骨架線的半徑取值生成樹(shù)木枝干的三維網(wǎng)格模型。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括對(duì)所述三維點(diǎn)云中的樹(shù)的枝條數(shù)據(jù)進(jìn)行分類,其中與樹(shù)干直接連接的枝條為一級(jí)枝條,與所述一級(jí)枝條直接連接的枝條為二級(jí)枝條。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對(duì)所述三維點(diǎn)云進(jìn)行數(shù)據(jù)預(yù)處理得到三維模型中樹(shù)的根部半徑取值和樹(shù)的枝條最小半徑取值,具體包括: 選取所述三維點(diǎn)云中位于樹(shù)根部位置的一個(gè)點(diǎn)V ; 在所述三維點(diǎn)云中找出所有與點(diǎn)V直線距離不大于20厘米、且其z坐標(biāo)值與點(diǎn)V的z坐標(biāo)值之差的絕對(duì)值不大于I厘米的點(diǎn),并將這些點(diǎn)加入數(shù)據(jù)集W中; 計(jì)算數(shù)據(jù)集D1^的中心點(diǎn)坐標(biāo)vDl.以及所述中心點(diǎn)坐標(biāo)vDl.與數(shù)據(jù)集D1^中所有數(shù)據(jù)點(diǎn)的平均距離,所述平均距離即為樹(shù)的根部半徑取值; 接收用戶的最小半徑取值設(shè)置數(shù)據(jù),根據(jù)所述設(shè)置數(shù)據(jù)設(shè)置枝條最小半徑取值。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)接收到的用戶設(shè)置數(shù)據(jù)從所述三維點(diǎn)云中提取樹(shù)的枝干骨架線,具體包括: 接收用戶的用戶設(shè)置數(shù)據(jù); 根據(jù)接收到的用戶設(shè)置數(shù)據(jù)在所述三維點(diǎn)云中提取樹(shù)干的骨架線; 根據(jù)接收到的用戶設(shè)置數(shù)據(jù)在所述三維點(diǎn)云中提取枝條的骨架線,所述枝條包括一級(jí)枝條和二級(jí)枝條。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)接收到的用戶設(shè)置數(shù)據(jù)在所述三維點(diǎn)云中提取樹(shù)干的骨架線,具體包括: 根據(jù)接收到的用戶設(shè)置數(shù)據(jù)在所述三維點(diǎn)云中選取代表樹(shù)干根部的數(shù)據(jù)點(diǎn)和代表樹(shù)干頂部的數(shù)據(jù)點(diǎn); 所述代表樹(shù)干根部的數(shù)據(jù)點(diǎn)和代表樹(shù)干頂部的數(shù)據(jù)點(diǎn)從所述三維點(diǎn)云中回溯計(jì)算樹(shù)干的骨架線。
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)預(yù)設(shè)規(guī)則以及所述根部半徑取值和樹(shù)的枝條最小半徑取值計(jì)算優(yōu)化后的所述枝干骨架線中每條骨架線的半徑取值,具體包括: 所述根據(jù)預(yù)設(shè)規(guī)則以及所述樹(shù)的枝條最小半徑取值計(jì)算優(yōu)化后的所述枝干骨架線中二級(jí)枝條的底部半徑取值和頂部半徑取值; 所述根據(jù)預(yù)設(shè)規(guī)則以及所述樹(shù)的枝條最小半徑取值計(jì)算優(yōu)化后的所述枝干骨架線中一級(jí)枝條的底部半徑取值和頂部半徑取值;根據(jù)預(yù)設(shè)規(guī)則以及所述根部半徑取值和樹(shù)的枝條最小半徑取值計(jì)算優(yōu)化后的所述枝干骨架線中樹(shù)干的底部半徑取值和頂部半徑取值。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)優(yōu)化后的所述枝干骨架線以及每條骨架線的半徑取值生成樹(shù)木枝干的三維網(wǎng)格模型,具體為: 根據(jù)優(yōu)化后的所述枝干骨架線以及每條骨架線的半徑取值采用隱式曲面進(jìn)行網(wǎng)格化生成樹(shù)木枝干的三維網(wǎng)格模型。
8.一種果樹(shù)枝干交互式三維重建系統(tǒng),其特征在于,該系統(tǒng)包括: 獲取和預(yù)處理模塊,用于獲取樹(shù)的三維點(diǎn)云,對(duì)所述三維點(diǎn)云進(jìn)行數(shù)據(jù)預(yù)處理得到樹(shù)的根部半徑取值和樹(shù)的枝條最小半徑取值; 提取模塊,用于根據(jù)接收到的用戶設(shè)置數(shù)據(jù)從所述三維點(diǎn)云中提取樹(shù)的枝干骨架線; 優(yōu)化處理模塊,用于對(duì)提取到的所述枝干骨架線進(jìn)行優(yōu)化處理; 半徑計(jì)算模塊,用于根據(jù)預(yù)設(shè)規(guī)則以及所述樹(shù)的根部半徑取值和樹(shù)的枝條最小半徑取值計(jì)算優(yōu)化后的所述枝干骨架線中每條骨架線的半徑取值; 生成模塊,用于根據(jù)優(yōu)化后的所述枝干骨架線以及每條骨架線的半徑取值生成樹(shù)木枝干的三維網(wǎng)格模型。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括枝條分類模塊; 枝條分類模塊,用于對(duì)所述三維點(diǎn)云中的樹(shù)的枝條數(shù)據(jù)進(jìn)行分類,其中與樹(shù)干直接連接的枝條為一級(jí)枝條,與所述一`級(jí)枝條直接連接的枝條為二級(jí)枝條。
【文檔編號(hào)】G06T17/00GK103824325SQ201410073695
【公開(kāi)日】2014年5月28日 申請(qǐng)日期:2014年2月28日 優(yōu)先權(quán)日:2014年2月28日
【發(fā)明者】陸聲鏈, 郭新宇, 溫維亮, 肖伯祥, 王傳宇 申請(qǐng)人:北京農(nóng)業(yè)信息技術(shù)研究中心