一種基于高程分布特征的循環(huán)色帶點(diǎn)云渲染方法
【技術(shù)領(lǐng)域】
[0001]本文發(fā)明涉及到一種基于高程分布特征的循環(huán)色帶點(diǎn)云渲染方法,屬于測繪行業(yè)和三維激光技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]隨著三維激光掃描儀技術(shù)應(yīng)用到測繪行業(yè),點(diǎn)云數(shù)據(jù)已經(jīng)成為測繪領(lǐng)域中重要的數(shù)據(jù)源,它具有高精度、高密度以及全數(shù)字等特征。對于三維激光技術(shù)通過高精度步進(jìn)掃描快速獲取的現(xiàn)實(shí)世界中的三維空間信息,可以通過可視化技術(shù)將這些數(shù)字信息顯示于計算機(jī)中,主要用于點(diǎn)云數(shù)據(jù)的動態(tài)瀏覽顯示,便于點(diǎn)云據(jù)后續(xù)處理中進(jìn)行人機(jī)交互。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是根據(jù)自定義的數(shù)據(jù)格式存儲和管理點(diǎn)云數(shù)據(jù),然后根據(jù)漸變色帶獲取點(diǎn)云顏色信息,在點(diǎn)云實(shí)時渲染中加入透明度信息,且該透明度信息是由點(diǎn)云的強(qiáng)度統(tǒng)計而來,有效地提高了點(diǎn)云的識別度,增強(qiáng)了點(diǎn)云渲染的對比度,輔助數(shù)字測圖等相關(guān)點(diǎn)云后處理,是一種便于判讀的點(diǎn)云渲染方式。
[0004]為實(shí)現(xiàn)上述目的,首先使用車載(地面或者背包)三維激光測量系統(tǒng)采集數(shù)據(jù),其中車載三維激光移動測量系統(tǒng)包括車輛、三維激光掃描儀、GPS導(dǎo)航儀、慣性制導(dǎo)系統(tǒng)和全景相機(jī),采集數(shù)據(jù)過程在車輛行駛中進(jìn)行,三維激光掃描儀用于獲取點(diǎn)云數(shù)據(jù),GPS導(dǎo)航儀與慣性制導(dǎo)系統(tǒng)構(gòu)成的P0S系統(tǒng)用于獲取姿態(tài)位置信息,按照時間對齊,根據(jù)采集的P0S信息插值結(jié)算獲取三維點(diǎn)云數(shù)據(jù)掃描圈每一圈的姿態(tài)信息及位置信息。根據(jù)以上數(shù)據(jù),對點(diǎn)云數(shù)據(jù)進(jìn)行按圈存儲,其中對于一個點(diǎn)記錄存儲的信息包括三維坐標(biāo)、顏色以及強(qiáng)度等。
[0005]本發(fā)明提出的一種基于高程分布特征的循環(huán)色帶點(diǎn)云渲染方法包括如下幾個步驟:
[0006]步驟1、將自定義的點(diǎn)云三維視圖嵌入到MFC的多文檔視圖中,采用自定義數(shù)據(jù)格式對點(diǎn)云數(shù)據(jù)進(jìn)行存儲和管理;
[0007]步驟2、創(chuàng)建點(diǎn)云視圖,使用多線程機(jī)制將點(diǎn)云數(shù)據(jù)加載至內(nèi)存中,加載的信息包括點(diǎn)云的行列數(shù)、外包圍盒、點(diǎn)云的圈索引信息以及點(diǎn)云數(shù)據(jù)信息,值得一提的是,內(nèi)存中的點(diǎn)云是按照圈進(jìn)行索引;
[0008]步驟3、通過選擇自定義的漸變色帶、坐標(biāo)軸方向以及循環(huán)步長,設(shè)置點(diǎn)云視圖渲染參數(shù);
[0009]步驟4、在點(diǎn)云視圖的渲染過程中,根據(jù)設(shè)置的渲染參數(shù),對點(diǎn)云進(jìn)行著色。
[0010]4.1構(gòu)造自定義漸變色帶,用于點(diǎn)云實(shí)時渲染時取色;
[0011]4.2根據(jù)給定極大值與極小值的比例范圍,去除點(diǎn)云高程以及強(qiáng)度的極大值與極小值,統(tǒng)計出點(diǎn)云高程以及強(qiáng)度的最小值和最大值;
[0012]4.3根據(jù)點(diǎn)記錄的高程來獲取漸變色帶中的RGB顏色,按照點(diǎn)記錄的強(qiáng)度信息計算出顏色的透明度,構(gòu)成了 HSV顏色的各個分量;
[0013]4.4在點(diǎn)云視圖的實(shí)時渲染中,完成對所有點(diǎn)記錄的繪制。
[0014]本發(fā)明具有如下優(yōu)點(diǎn):
[0015]1、三維激光測量系統(tǒng)具有抗干擾性強(qiáng)、精度大,密度高以及全天侯工作不間斷作業(yè),可以快速獲取以及更新數(shù)據(jù)。
[0016]2、在瀏覽點(diǎn)云的過程中,按照高程方向進(jìn)行循環(huán)漸變色帶渲染,便于區(qū)分路面以及較低的植被等,提高了點(diǎn)云的辨識度;
[0017]3、在實(shí)時繪制過程中,將強(qiáng)度信息加入點(diǎn)渲染中,增強(qiáng)點(diǎn)云的對比度,更好地輔助于數(shù)字測圖、點(diǎn)云過濾以及點(diǎn)云分類等相關(guān)后續(xù)處理。。
【附圖說明】
[0018]圖1為一種基于高程分布特征的循環(huán)色帶點(diǎn)云渲染方法操作流程圖。
[0019]圖2為本發(fā)明統(tǒng)計高程最值的操作流程圖。
[0020]圖3為本發(fā)明統(tǒng)計強(qiáng)度最值的操作流程圖。
[0021 ]圖4三維激光點(diǎn)云根據(jù)循環(huán)色帶按Z軸方向渲染效果圖。
【具體實(shí)施方式】
[0022]以下結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步詳述。
[0023]步驟1將自定義的點(diǎn)云視圖嵌入至MFC的多文檔視圖中,每個點(diǎn)云視圖可對應(yīng)多個點(diǎn)云對象。將點(diǎn)云數(shù)據(jù)加載至內(nèi)存,并采用自定義的數(shù)據(jù)格式存儲點(diǎn)云,且內(nèi)存中的點(diǎn)云為按圈存儲,便于存??;
[0024]步驟2自定義漸變顏色二維數(shù)組colorRampList[m][n],其中m為構(gòu)建的色帶編號,η為構(gòu)建的色帶的漸變顏色種類,然后構(gòu)造漸變色帶colorRamp,以10個漸變顏色種類為例,內(nèi)存中每個點(diǎn)記錄可以按照比例值獲取該漸變色帶的顏色值;
[0025]步驟3統(tǒng)計高程的最大值與最小值。為了使按色帶渲染后的點(diǎn)云顏色保持相對穩(wěn)定,在統(tǒng)計點(diǎn)云顏色時,需要剔除高程特別大或者特別小的點(diǎn)。以按高程循環(huán)色帶渲染為例,具體操作如下:遍歷點(diǎn)云,將所有點(diǎn)的高程映射到[0,999]區(qū)間中,并對落在第i個區(qū)間內(nèi)的點(diǎn)云數(shù)量進(jìn)行統(tǒng)計(其中i = 0,l,2,…,999);調(diào)整高程分布,設(shè)定點(diǎn)云點(diǎn)數(shù)百分比閾值為f,使用該閾值對高程較大和較小的點(diǎn)進(jìn)行剔除;統(tǒng)計更新后的點(diǎn)云數(shù)據(jù),獲取新的最大值MaxZ與最小值MinZ。
[0026]步驟4統(tǒng)計強(qiáng)度的最大值與最小值。為了將點(diǎn)云強(qiáng)度信息加入點(diǎn)渲染中,增強(qiáng)點(diǎn)云渲染的對比度,需要對強(qiáng)度信息進(jìn)行統(tǒng)計,且在統(tǒng)計強(qiáng)度信息時,需要剔除強(qiáng)度特別大或特別小的點(diǎn)。具體操作如下:遍歷點(diǎn)云,將所有點(diǎn)的強(qiáng)度映射到[0,999]區(qū)間,并對落在第i個區(qū)間內(nèi)的點(diǎn)云數(shù)量進(jìn)行統(tǒng)計(其中i = 0,l,2,…,999);調(diào)整強(qiáng)度分布,設(shè)定點(diǎn)云點(diǎn)數(shù)百分比極大值閾值為fmaxI以及點(diǎn)云點(diǎn)數(shù)百分比極小值閾值fminI,使用閾值fmaxI對強(qiáng)度較大的點(diǎn)進(jìn)行過濾,使用閾值fminl對強(qiáng)度較小的點(diǎn)進(jìn)行過濾;統(tǒng)計更新后的點(diǎn)云數(shù)據(jù),獲取新的強(qiáng)度最大值Maxi與最小值Mini ;
[0027]步驟5設(shè)置漸變色帶,循環(huán)步長step以及坐標(biāo)軸方向,計算需要渲染點(diǎn)的RGB顏色信息。以按高程循環(huán)色帶渲染為例,具體操作如下:遍歷需要渲染的所有點(diǎn),用當(dāng)前點(diǎn)的Z坐標(biāo)減去MinZ得到Dis,然后Dis對Step求模得到MDis,為了保證色彩的對稱性,對MDis為奇數(shù)的點(diǎn)進(jìn)行標(biāo)記,Step減去MDis得到相對循環(huán)距離dMDis,然后根據(jù)dMDis求出在循環(huán)色帶中的顏色帶及該色帶的比例值,從而取出顏色;
[0028]步驟6計算透明度,確保點(diǎn)云渲染色彩不會太黑或者太亮,增強(qiáng)點(diǎn)云渲染的對比度。具體操作如下:遍歷需要渲染的點(diǎn),計算當(dāng)前點(diǎn)的強(qiáng)度值和Mini的差值,并使該差值落在區(qū)間[0.1,0.95 ]中,從而求得該點(diǎn)的透明度L,作為HSV顏色的透明度分量;
[0029]步驟7使用OpenGL在點(diǎn)云三維視圖中對所有點(diǎn)云進(jìn)行實(shí)時繪制。
【主權(quán)項】
1.一種基于高程分布特征的循環(huán)色帶點(diǎn)云渲染方法,首先,使用車載(地面或者背包)三維激光測量系統(tǒng)進(jìn)行數(shù)據(jù)采集,三維激光掃描儀用于獲取點(diǎn)云數(shù)據(jù),GPS導(dǎo)航儀與慣性制導(dǎo)系統(tǒng)構(gòu)成的POS系統(tǒng)用于獲取姿態(tài)位置信息;其次,點(diǎn)云數(shù)據(jù)按圈進(jìn)行存儲,存儲的信息主要包括三維坐標(biāo)、顏色以及強(qiáng)度等;最后通過計算,獲取點(diǎn)云HSV顏色值,實(shí)現(xiàn)了便于判讀的循環(huán)色帶點(diǎn)云渲染,主要步驟如下: 步驟1、將自定義的點(diǎn)云三維視圖嵌入到MFC的多文檔視圖中,采用自定義數(shù)據(jù)格式對點(diǎn)云數(shù)據(jù)進(jìn)行存儲和管理,同時將點(diǎn)云加載至內(nèi)存; 步驟2、新建漸變色帶colorRamp,內(nèi)存中每個點(diǎn)記錄可以按照比例值獲取該漸變色帶的顏色值; 步驟3、遍歷點(diǎn)云,剔除高程方向特別大或者特別小的點(diǎn),統(tǒng)計出點(diǎn)云高程最大值Ma X Z和最小值MinZ; 步驟4、遍歷點(diǎn)云,剔除強(qiáng)度特別大或者特別小的點(diǎn),統(tǒng)計出點(diǎn)云強(qiáng)度最大值Maxi和最小值Mini ; 步驟5、遍歷需要渲染的點(diǎn)云,根據(jù)設(shè)置的循環(huán)步長以及當(dāng)前點(diǎn)的Z值和MinZ的差值,求出在漸變色帶中的顏色帶及該色帶的比例值,從而獲取當(dāng)前點(diǎn)的RGB顏色信息; 步驟6、遍歷需要渲染的點(diǎn)云,計算當(dāng)前點(diǎn)的強(qiáng)度值和Mini的差值,并使該差值落在區(qū)間[0.1,0.95 ]中,從而獲取該點(diǎn)的透明度L,作為HSV顏色的透明度分量; 步驟7、使用OpenGL在點(diǎn)云三維視圖中對所有點(diǎn)云進(jìn)行實(shí)時繪制。2.根據(jù)權(quán)利要求1所述的一種基于高程分布特征的循環(huán)色帶點(diǎn)云渲染方法,其特征在于:步驟3中所述的遍歷所有點(diǎn),統(tǒng)計高程的最大值與最小值。為了使按色帶渲染后的點(diǎn)云顏色保持相對穩(wěn)定,在統(tǒng)計點(diǎn)云顏色時,需要剔除高程特別大或者特別小的點(diǎn)。以按高程循環(huán)色帶渲染為例,具體操作如下:遍歷點(diǎn)云,將所有點(diǎn)的高程映射到[0,999]區(qū)間中,并對落在第i個區(qū)間內(nèi)的點(diǎn)云數(shù)量進(jìn)行統(tǒng)計(其中i = 0,1,2,…,999);調(diào)整高程分布,設(shè)定點(diǎn)云點(diǎn)數(shù)百分比閾值為f,使用該閾值對高程較大和較小的點(diǎn)進(jìn)行剔除;統(tǒng)計更新后的點(diǎn)云數(shù)據(jù),獲取新的最大值MaxZ與最小值MinZ。3.根據(jù)權(quán)利要求1所述的一種基于高程分布特征的循環(huán)色帶點(diǎn)云渲染方法,其特征在于:步驟4中所述的遍歷所有點(diǎn),統(tǒng)計強(qiáng)度的最大值與最小值。為了將點(diǎn)云強(qiáng)度信息加入點(diǎn)渲染中,增強(qiáng)點(diǎn)云渲染的對比度,需要對強(qiáng)度信息進(jìn)行統(tǒng)計,且在統(tǒng)計強(qiáng)度信息時,需要剔除強(qiáng)度特別大或特別小的點(diǎn)。具體操作如下:遍歷點(diǎn)云,將所有點(diǎn)的強(qiáng)度映射到[0,999]區(qū)間,并對落在第i個區(qū)間內(nèi)的點(diǎn)云數(shù)量進(jìn)行統(tǒng)計(其中i = 0,1,2,…,999);調(diào)整強(qiáng)度分布,設(shè)定點(diǎn)云點(diǎn)數(shù)百分比極大值閾值為fmaxl以及點(diǎn)云點(diǎn)數(shù)百分比極小值閾值fminl,使用閾值fmax I對強(qiáng)度較大的點(diǎn)進(jìn)行過濾,使用閾值fmin I對強(qiáng)度較小的點(diǎn)進(jìn)行過濾;統(tǒng)計更新后的點(diǎn)云數(shù)據(jù),獲取新的強(qiáng)度最大值Maxi與最小值Mini。4.根據(jù)權(quán)利要求1所述的一種基于高程分布特征的循環(huán)色帶點(diǎn)云渲染方法,其特征在于:步驟5中所述的設(shè)置漸變色帶,循環(huán)步長step以及坐標(biāo)軸方向,計算需要渲染點(diǎn)的RGB顏色信息。以按高程循環(huán)色帶渲染為例,具體操作如下:遍歷需要渲染的所有點(diǎn),用當(dāng)前點(diǎn)的Z坐標(biāo)減去MinZ得到Dis,然后Dis對Step求模得到MDis,為了保證色彩的對稱性,對MDis為奇數(shù)的點(diǎn)進(jìn)行標(biāo)記,Step減去MDis得到相對循環(huán)距離dMDis,然后根據(jù)dMDis求出在循環(huán)色帶中的顏色帶及該色帶的比例值,進(jìn)而取出顏色。5.根據(jù)權(quán)利要求1所述的一種基于高程分布特征的循環(huán)色帶點(diǎn)云渲染方法,其特征在于:步驟6中所述的計算透明度,確保點(diǎn)云渲染色彩不會太黑或者太亮,增強(qiáng)點(diǎn)云渲染的對比度。具體操作如下:遍歷需要渲染的點(diǎn),計算當(dāng)前點(diǎn)的強(qiáng)度值和Mini的差值,并使該差值落在區(qū)間[0.1,0.95 ]中,從而求得該點(diǎn)的透明度L,作為HSV顏色的透明度分量。
【專利摘要】本發(fā)明涉及到一種基于高程分布特征的循環(huán)色帶點(diǎn)云渲染方法。具體步驟如下:首先,創(chuàng)建點(diǎn)云視圖,使用多線程機(jī)制將點(diǎn)云的行列數(shù)、外包圍盒、點(diǎn)云的圈索引信息以及點(diǎn)云數(shù)據(jù)信息加載至內(nèi)存中;第二,自定義漸變色帶,使得可以通過比例值獲取內(nèi)存中每個點(diǎn)云的顏色;第三,剔除高程方向和強(qiáng)度特別大或者特別小的點(diǎn),分別統(tǒng)計出高程和強(qiáng)度的最大值與最小值;第四,根據(jù)高程的最小值,計算出需要渲染點(diǎn)云的RGB顏色信息,根據(jù)強(qiáng)度的最小值,計算出需要渲染點(diǎn)云的透明度信息;最后,使用OpenGL在點(diǎn)云三維視圖中對所有點(diǎn)云進(jìn)行實(shí)時繪制。總的來說,該方法提高了點(diǎn)云的識別度,增強(qiáng)了點(diǎn)云的對比度效果,更好地輔助于數(shù)字測圖等點(diǎn)云后處理。
【IPC分類】G06T15/00, G01B11/24
【公開號】CN105488836
【申請?zhí)枴緾N201510777548
【發(fā)明人】龔書林, 劉守軍
【申請人】武漢海達(dá)數(shù)云技術(shù)有限公司
【公開日】2016年4月13日
【申請日】2015年11月16日