基于動(dòng)態(tài)分層的公共標(biāo)志點(diǎn)自動(dòng)匹配方法
【專利摘要】本發(fā)明涉及一種基于動(dòng)態(tài)分層的公共標(biāo)志點(diǎn)自動(dòng)匹配方法,其特征在于:其具體的方法按以下步驟實(shí)現(xiàn):設(shè)由三維掃描儀和計(jì)算機(jī)在視點(diǎn)處獲得的待測物體的標(biāo)志點(diǎn)集合為P;在P中搜索X軸坐標(biāo)值最小的n個(gè)標(biāo)志點(diǎn),在Q中搜索X軸坐標(biāo)值最小的n個(gè)標(biāo)志點(diǎn),構(gòu)建Q的四個(gè)動(dòng)態(tài)距離矩陣,將P的四個(gè)動(dòng)態(tài)距離矩陣中的元素值與Q的四個(gè)動(dòng)態(tài)距離矩陣中的元素值進(jìn)行判斷是否相等,由E中所有標(biāo)志點(diǎn)構(gòu)成集合E’,由F中所有標(biāo)志點(diǎn)構(gòu)成集合F’;如果標(biāo)志點(diǎn)A到E’中所有標(biāo)志點(diǎn)的歐式距離與標(biāo)志點(diǎn)B到F,中所有對應(yīng)標(biāo)志點(diǎn)的歐式距離都相等。其有效的降低了匹配錯(cuò)誤率;而且還解決了傳統(tǒng)匹配標(biāo)志點(diǎn)所面臨的速度問題和精度問題。
【專利說明】基于動(dòng)態(tài)分層的公共標(biāo)志點(diǎn)自動(dòng)匹配方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種基于動(dòng)態(tài)分層的公共標(biāo)志點(diǎn)自動(dòng)匹配方法,屬于計(jì)算機(jī)視覺技術(shù) 領(lǐng)域。
【背景技術(shù)】
[0002] 三維重構(gòu)是通過計(jì)算機(jī)對物體進(jìn)行模擬、識別、分析后建立相應(yīng)的模型來虛擬景 象的一種技術(shù),其通過測量物體的各個(gè)位置的三維信息進(jìn)行建模。由于物體的大小和立體 結(jié)構(gòu)使得投影機(jī)不能一次獲取到物體完整的三維信息,需要在多次測量后,通過點(diǎn)云拼接 來建立整體的模型。點(diǎn)云拼接就是把不同部分的點(diǎn)云信息,通過坐標(biāo)變換統(tǒng)一到一個(gè)坐標(biāo) 系下,其關(guān)鍵在于特征點(diǎn)或標(biāo)志點(diǎn)的快速匹配。
[0003] 目前的點(diǎn)云拼接方法大致分為兩種,一種是提取物體表面具有明顯幾何信息的點(diǎn) (如曲率,法向量,二階矩不變量等),進(jìn)行分析來匹配這些特征點(diǎn),再求取點(diǎn)云的坐標(biāo)變換 矩陣。如朱延娟等人根據(jù)測點(diǎn)及其鄰域點(diǎn)來估算點(diǎn)的曲面法線矢量,并計(jì)算各個(gè)點(diǎn)的曲率, 通過曲率和法線矢量的方向來匹配特征點(diǎn)對。然而這種方法會(huì)產(chǎn)生大量的誤匹配,而且算 法的計(jì)算量也很大,尤其在物體的幾何信息不明顯的情況下很難找到特征點(diǎn)對,所以該方 法很難在實(shí)際應(yīng)用中得到推廣。第二種方法為在物體表面粘貼標(biāo)志點(diǎn)作為物體的特征點(diǎn), 通過匹配標(biāo)志點(diǎn)來解決上述問題。但是目前標(biāo)志點(diǎn)匹配的方法基本都是采用全局搜索進(jìn)行 匹配各個(gè)標(biāo)志點(diǎn)對,其利用標(biāo)志點(diǎn)的空間特征不變性進(jìn)行匹配標(biāo)志點(diǎn)對,如許曉棟等人以 一種"不太可能發(fā)生的小概率事件"來實(shí)現(xiàn)標(biāo)志點(diǎn)匹配。但是這種方法需要計(jì)算大量無用 標(biāo)志點(diǎn)距離,同時(shí)還會(huì)產(chǎn)生很多錯(cuò)誤點(diǎn)對,其計(jì)算速度和拼接精度也很難解決實(shí)際工業(yè)生 產(chǎn)需求。本發(fā)明提出了一種基于動(dòng)態(tài)分層的公共標(biāo)志點(diǎn)自動(dòng)匹配方法,該方法從點(diǎn)云的各 個(gè)局部區(qū)域進(jìn)行動(dòng)態(tài)搜索標(biāo)志點(diǎn),引入動(dòng)態(tài)距離矩陣記錄分層搜索標(biāo)志點(diǎn)間的距離,通過 比較距離矩陣匹配標(biāo)志點(diǎn)對,不僅減少搜索區(qū)域、降低匹配錯(cuò)誤率,而且匹配算法簡單,有 效地降低匹配錯(cuò)誤率,提高了匹配速度。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的在于提供一種基于動(dòng)態(tài)分層的公共標(biāo)志點(diǎn)自動(dòng)匹配方法,其有效的 降低了匹配錯(cuò)誤率;而且還解決了傳統(tǒng)匹配標(biāo)志點(diǎn)所面臨的速度問題和精度問題。
[0005] 本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:基于動(dòng)態(tài)分層的公共標(biāo)志點(diǎn)自動(dòng)匹配方法,其 特征在于:三維掃描儀通過電纜與計(jì)算機(jī)連接,待測物體的外表面上貼有標(biāo)志點(diǎn),其具體的 方法按以下步驟實(shí)現(xiàn): 步驟1、設(shè)由三維掃描儀和計(jì)算機(jī)在視點(diǎn)處獲得的待測物體的標(biāo)志點(diǎn)集合為P ;在保證 三維掃描儀的參數(shù)不變的情況下,由三維掃描儀在視點(diǎn)處獲得的待測物體的標(biāo)志點(diǎn)集合用 Q表示,P和Q中共同標(biāo)志點(diǎn)的個(gè)數(shù)為N,N彡3,設(shè)η為3。
[0006] 步驟2、在Ρ中搜索X軸坐標(biāo)值最小的η個(gè)標(biāo)志點(diǎn),由η個(gè)標(biāo)志點(diǎn)構(gòu)成集合P_Min_ X,P_Min_x (i)為集合P_Min_x第i個(gè)元素,i=l,2,…η;在P中搜索X軸坐標(biāo)值最大的η 個(gè)標(biāo)志點(diǎn),由η個(gè)標(biāo)志點(diǎn)構(gòu)成集合P_Max_x, P_Max_x( i )為集合P_Max_x第i個(gè)元素,i=l, 2, 一η ;在P中搜索Y軸坐標(biāo)值最小的η個(gè)標(biāo)志點(diǎn),由η個(gè)標(biāo)志點(diǎn)構(gòu)成集合P_Min_y,P_Min_ y (i)為集合i個(gè)元素,i=l,2,…η ;在P中搜索Y軸坐標(biāo)值最大的η個(gè)標(biāo)志點(diǎn), 由η個(gè)標(biāo)志點(diǎn)構(gòu)成集合P_Max_y, P_Max_y (i )為矩陣P_Max_y第i個(gè)元素,i=l,2,…η。
[0007] 步驟3、構(gòu)建Ρ的四個(gè)動(dòng)態(tài)距離矩陣,分別用S P_Min_x、S P_Max_x、S P_Min_y、S P_Max_y表示,其中S P_Min_x (i,j)為矩陣S P_Min_x第i行,第j列元素,表示P_Min_ x (i)到P_Min_x (j)的歐式距離;S_P_Max_x (i, j)為矩陣S_P_Max_x第i行,第j列元 素,表示 P_Max_x (i)到 P_Max_x (j)的歐式距離;S P_Min_y (i, j)為矩陣 S_P_Min_y 第 i行,第j列元素,表示P_Min_y (i )到P_Min_y (j )的歐式距離;S P_Max_y (i,j )為矩陣 S_P_Max_y第i行,第j列元素,表示P_Max_y (i )到P_Max_y (j )的歐式距離。
[0008] 步驟4、在Q中搜索X軸坐標(biāo)值最小的n個(gè)標(biāo)志點(diǎn),由n個(gè)標(biāo)志點(diǎn)構(gòu)成集合Q_Min_ X,Q_Min_x (i)為集合Q_Min_x第i個(gè)元素,i=l,2,…η;在Q中搜索X軸坐標(biāo)值最大的η 個(gè)標(biāo)志點(diǎn),由η個(gè)標(biāo)志點(diǎn)構(gòu)成集合Q_Max_x, Q_Max_x (i )為集合Q_Max_x第i個(gè)元素,i=l, 2, 一η ;在Q中搜索Y軸坐標(biāo)值最小的η個(gè)標(biāo)志點(diǎn),由η個(gè)標(biāo)志點(diǎn)構(gòu)成集合Q_Min_y,Q_Min_ y (i)為集合Q_Min_y第i個(gè)元素,i=l,2,…η ;在Q中搜索Y軸坐標(biāo)值最大的η個(gè)標(biāo)志點(diǎn), 由η個(gè)標(biāo)志點(diǎn)構(gòu)成集合Q_Max_y, Q_Max_y (i )為矩陣Q_Max_y第i個(gè)元素,i=l,2,…η。
[0009] 步驟5、構(gòu)建Q的四個(gè)動(dòng)態(tài)距離矩陣,分別用S_Q_Min_x、S_Q_Max_x、S_Q_Min_y、S_ Q_Max_y表示,其中S_Q_Min_x (i, j)為矩陣S_Q_Min_x第i行,第j列元素,表示Q_Min_ x (i)到Q_Min_x (j)的歐式距離;S_Q_Max_x (i, j)為矩陣S_Q_Max_x第i行,第j列元 素,表示 Q_Max_x (i)到 Q_Max_x (j)的歐式距離;S_Q_Min_y (i, j)為矩陣 S_Q_Min_y 第 i行,第j列元素,表示Q_Min_y (i^ljQ_Min_y (j)的歐式距離;SQ_Max_y (i,j)為矩陣 S_Q_Max_y第i行,第j列元素,表示Q_Max_y (i )到Q_Max_y (j )的歐式距離。
[0010] 步驟6、將P的四個(gè)動(dòng)態(tài)距離矩陣中的元素值與Q的四個(gè)動(dòng)態(tài)距離矩陣中的元素 值進(jìn)行判斷是否相等,如果P_Min_x中有P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離與Q_Min_x或Q_ Max_x或Q_Min_y或Q_Max_y中P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離都相等,且P_n > 3,那么由 上述P_Min_x中的P_n個(gè)標(biāo)志點(diǎn)構(gòu)成公共標(biāo)志點(diǎn)初始集合E,在Q_Min_x或Q_Max_x或Q_ Min_y或Q_Max_y的標(biāo)志點(diǎn)中,與E中的標(biāo)志點(diǎn)為同一個(gè)標(biāo)志點(diǎn)的集合構(gòu)成匹配公共標(biāo)志點(diǎn) 初始集合F ;否則,如果P_Max_x中有P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離與Q_Min_x或Q_Max_ X或Q_Min_y或Q_Max_y中P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離都相等,且P_n彡3,那么由上 述P_Max_x中的P_n個(gè)標(biāo)志點(diǎn)構(gòu)成公共標(biāo)志點(diǎn)初始集合E,在Q_Min_x或Q_Max_x或Q_Min_ y或Q_Max_y的標(biāo)志點(diǎn)中,與E中的標(biāo)志點(diǎn)為同一個(gè)標(biāo)志點(diǎn)的集合構(gòu)成匹配公共標(biāo)志點(diǎn)初 始集合F ;否則,如果P_Min_y中有P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離與Q_Min_x或Q_Max_x 或Q_Min_y或Q_Max_y中P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離都相等,且P_n > 3,那么由上述 P_Min_y中的P_n個(gè)標(biāo)志點(diǎn)構(gòu)成公共標(biāo)志點(diǎn)初始集合E,在Q_Min_x或Q_Max_x或Q_Min_y 或Q_Max_y的標(biāo)志點(diǎn)中,與E中的標(biāo)志點(diǎn)為同一個(gè)標(biāo)志點(diǎn)的集合構(gòu)成匹配公共標(biāo)志點(diǎn)初始 集合F ;否則,如果P_Max_y中有P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離與Q_Min_x或Q_Max_x或 Q_Min_y或Q_Max_y中P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離都相等,且P_n彡3,那么由上述P_ Max_y中的P_n個(gè)標(biāo)志點(diǎn)構(gòu)成公共標(biāo)志點(diǎn)初始集合E,在Q_Min_x或Q_Max_x或Q_Min_y或 Q_Max_y的標(biāo)志點(diǎn)中,與E中的標(biāo)志點(diǎn)為同一個(gè)標(biāo)志點(diǎn)的集合構(gòu)成匹配公共標(biāo)志點(diǎn)初始集 合F ;否則,n=n+l,轉(zhuǎn)而執(zhí)行步驟2。
[0011] 步驟7、由E中所有標(biāo)志點(diǎn)構(gòu)成集合E',由F中所有標(biāo)志點(diǎn)構(gòu)成集合F'。
[0012] 步驟8、如果E中的標(biāo)志點(diǎn)都為P_Min_x中的標(biāo)志點(diǎn),那么在P中去掉E'中的標(biāo)志 點(diǎn),構(gòu)成集合P',在P'中搜索X軸坐標(biāo)值最小的標(biāo)志點(diǎn)A ;如果E中的標(biāo)志點(diǎn)都為P_Max_x 中的標(biāo)志點(diǎn),那么在P中去掉E'中的標(biāo)志點(diǎn),構(gòu)成集合P',在P'中搜索X軸坐標(biāo)值最大的 標(biāo)志點(diǎn)A ;如果E中的標(biāo)志點(diǎn)都為P_Min_y中的標(biāo)志點(diǎn),那么在P中去掉E'中的標(biāo)志點(diǎn),構(gòu) 成集合P',在P'中搜索Y軸坐標(biāo)值最小的標(biāo)志點(diǎn)A ;如果E中的標(biāo)志點(diǎn)都為P_Max_y中的 標(biāo)志點(diǎn),那么在P中去掉E'中的標(biāo)志點(diǎn),構(gòu)成集合P',在P'中搜索Y軸坐標(biāo)值最大的標(biāo)志 點(diǎn)A。
[0013] 步驟9、如果F中的標(biāo)志點(diǎn)都為Q_Min_x中的標(biāo)志點(diǎn),那么在Q中去掉F'中的標(biāo)志 點(diǎn),構(gòu)成集合Q',在Q'中搜索X軸坐標(biāo)值最小的標(biāo)志點(diǎn)B ;如果F中的標(biāo)志點(diǎn)都為Q_Max_x 中的標(biāo)志點(diǎn),那么在Q中去掉F'中的標(biāo)志點(diǎn),構(gòu)成集合Q',在Q'中搜索X軸坐標(biāo)值最大的 標(biāo)志點(diǎn)B ;如果F中的標(biāo)志點(diǎn)都為Q_Min_y中的標(biāo)志點(diǎn),那么在Q中去掉F'中的標(biāo)志點(diǎn),構(gòu) 成集合Q',在Q'中搜索Y軸坐標(biāo)值最小的標(biāo)志點(diǎn)B ;如果F中的標(biāo)志點(diǎn)都為Q_Max_y中的 標(biāo)志點(diǎn),那么在Q中去掉F'中的標(biāo)志點(diǎn),構(gòu)成集合Q',在Q'中搜索Y軸坐標(biāo)值最大的標(biāo)志 點(diǎn)B。
[0014] 步驟10、如果標(biāo)志點(diǎn)A到E'中所有標(biāo)志點(diǎn)的歐式距離與標(biāo)志點(diǎn)B到F'中所有對 應(yīng)標(biāo)志點(diǎn)的歐式距離都相等,那么,將標(biāo)志點(diǎn)A加入到E'中,將標(biāo)志點(diǎn)B加入到F'中,并轉(zhuǎn) 而執(zhí)行步驟8 ; 通過以上步驟可以兩組不同視點(diǎn)下的公共標(biāo)志點(diǎn)進(jìn)行自動(dòng)匹配。
[0015] 本發(fā)明的積極效果是可以快速自動(dòng)匹配重疊區(qū)域內(nèi)的所有標(biāo)志點(diǎn),有效的降低了 匹配錯(cuò)誤率;而且還解決了傳統(tǒng)匹配標(biāo)志點(diǎn)所面臨的速度問題和精度問題。該方法在進(jìn)行 三維點(diǎn)云拼接技術(shù)上具有實(shí)際價(jià)值,其可以在逆向工程、數(shù)字圖像醫(yī)學(xué)處理、計(jì)算機(jī)視覺、 曲面質(zhì)量檢測等領(lǐng)域進(jìn)行推廣使用,其具有算法復(fù)雜性低、匹配錯(cuò)誤率低等優(yōu)點(diǎn)。
【專利附圖】
【附圖說明】
[0016] 圖1是基于動(dòng)態(tài)分層的公共標(biāo)志點(diǎn)自動(dòng)匹配方法所需設(shè)備構(gòu)成圖,其中:1為三維 掃描儀,2為計(jì)算機(jī),3為待測物體。
[0017] 圖2為動(dòng)態(tài)搜索示例圖。
【具體實(shí)施方式】
[0018] 下面結(jié)合附圖對本發(fā)明做進(jìn)一步的描述:如圖1所示,基于動(dòng)態(tài)分層的公共標(biāo)志 點(diǎn)自動(dòng)匹配方法,其特征在于:三維掃描儀1通過電纜與計(jì)算機(jī)2連接,待測物體3的外表 面上貼有標(biāo)志點(diǎn),其具體的方法按以下步驟實(shí)現(xiàn): 步驟1、設(shè)由三維掃描儀1和計(jì)算機(jī)2在視點(diǎn)1處獲得的待測物體3的標(biāo)志點(diǎn)集合為 P ;在保證三維掃描儀1的參數(shù)不變的情況下,由三維掃描儀1在視點(diǎn)2處獲得的待測物體 3的標(biāo)志點(diǎn)集合用Q表示,P和Q中共同標(biāo)志點(diǎn)的個(gè)數(shù)為N,N > 3,設(shè)η為3。
[0019] 步驟2、在Ρ中搜索X軸坐標(biāo)值最小的η個(gè)標(biāo)志點(diǎn),由η個(gè)標(biāo)志點(diǎn)構(gòu)成集合P_Min_ X,P_Min_x (i)為集合P_Min_x第i個(gè)元素,i=l,2,…η;在P中搜索X軸坐標(biāo)值最大的η 個(gè)標(biāo)志點(diǎn),由η個(gè)標(biāo)志點(diǎn)構(gòu)成集合P_Max_x, P_Max_x( i )為集合P_Max_x第i個(gè)元素,i=l, 2, 一η ;在P中搜索Y軸坐標(biāo)值最小的η個(gè)標(biāo)志點(diǎn),由η個(gè)標(biāo)志點(diǎn)構(gòu)成集合P_Min_y,P_Min_ y (i)為集合i個(gè)元素,i=l,2,…η ;在P中搜索Y軸坐標(biāo)值最大的η個(gè)標(biāo)志點(diǎn), 由η個(gè)標(biāo)志點(diǎn)構(gòu)成集合P_Max_y, P_Max_y (i )為矩陣P_Max_y第i個(gè)元素,i=l,2,…η。
[0020] 步驟3、構(gòu)建Ρ的四個(gè)動(dòng)態(tài)距離矩陣,分別用S P_Min_x、S P_Max_x、S P_Min_y、S P_Max_y表示,其中S P_Min_x (i,j)為矩陣S P_Min_x第i行,第j列元素,表示P_Min_ x (i)到P_Min_x (j)的歐式距離;S_P_Max_x (i, j)為矩陣S_P_Max_x第i行,第j列元 素,表示 P_Max_x (i)到 P_Max_x (j)的歐式距離;S P_Min_y (i, j)為矩陣 S_P_Min_y 第 i行,第j列元素,表示P_Min_y (i )到P_Min_y (j )的歐式距離;S P_Max_y (i,j )為矩陣 S_P_Max_y第i行,第j列元素,表示P_Max_y (i )到P_Max_y (j )的歐式距離。
[0021] 步驟4、在Q中搜索X軸坐標(biāo)值最小的n個(gè)標(biāo)志點(diǎn),由n個(gè)標(biāo)志點(diǎn)構(gòu)成集合Q_Min_ X,Q_Min_x (i)為集合Q_Min_x第i個(gè)元素,i=l,2,…η;在Q中搜索X軸坐標(biāo)值最大的η 個(gè)標(biāo)志點(diǎn),由η個(gè)標(biāo)志點(diǎn)構(gòu)成集合Q_Max_x, Q_Max_x (i )為集合Q_Max_x第i個(gè)元素,i=l, 2, 一η ;在Q中搜索Y軸坐標(biāo)值最小的η個(gè)標(biāo)志點(diǎn),由η個(gè)標(biāo)志點(diǎn)構(gòu)成集合Q_Min_y,Q_Min_ y (i)為集合Q_Min_y第i個(gè)元素,i=l,2,…η ;在Q中搜索Y軸坐標(biāo)值最大的η個(gè)標(biāo)志點(diǎn), 由η個(gè)標(biāo)志點(diǎn)構(gòu)成集合Q_Max_y, Q_Max_y (i )為矩陣Q_Max_y第i個(gè)元素,i=l,2,…η。
[0022] 步驟5、構(gòu)建Q的四個(gè)動(dòng)態(tài)距離矩陣,分別用S_Q_Min_x、S_Q_Max_x、S_Q_Min_y、S_ Q_Max_y表示,其中S_Q_Min_x (i, j)為矩陣S_Q_Min_x第i行,第j列元素,表示Q_Min_ x (i)到Q_Min_x (j)的歐式距離;S_Q_Max_x (i, j)為矩陣S_Q_Max_x第i行,第j列元 素,表示 Q_Max_x (i)到 Q_Max_x (j)的歐式距離;S_Q_Min_y (i, j)為矩陣 S_Q_Min_y 第 i行,第j列元素,表示Q_Min_y (i^ljQ_Min_y (j)的歐式距離;SQ_Max_y (i,j)為矩陣 S_Q_Max_y第i行,第j列元素,表示Q_Max_y (i )到Q_Max_y (j )的歐式距離。
[0023] 步驟6、將P的四個(gè)動(dòng)態(tài)距離矩陣中的元素值與Q的四個(gè)動(dòng)態(tài)距離矩陣中的元素 值進(jìn)行判斷是否相等,如果P_Min_x中有P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離與Q_Min_x或Q_ Max_x或Q_Min_y或Q_Max_y中P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離都相等,且P_n > 3,那么由 上述P_Min_x中的P_n個(gè)標(biāo)志點(diǎn)構(gòu)成公共標(biāo)志點(diǎn)初始集合E,在Q_Min_x或Q_Max_x或Q_ Min_y或Q_Max_y的標(biāo)志點(diǎn)中,與E中的標(biāo)志點(diǎn)為同一個(gè)標(biāo)志點(diǎn)的集合構(gòu)成匹配公共標(biāo)志點(diǎn) 初始集合F ;否則,如果P_Max_x中有P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離與Q_Min_x或Q_Max_ X或Q_Min_y或Q_Max_y中P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離都相等,且P_n彡3,那么由上 述P_Max_x中的P_n個(gè)標(biāo)志點(diǎn)構(gòu)成公共標(biāo)志點(diǎn)初始集合E,在Q_Min_x或Q_Max_x或Q_Min_ y或Q_Max_y的標(biāo)志點(diǎn)中,與E中的標(biāo)志點(diǎn)為同一個(gè)標(biāo)志點(diǎn)的集合構(gòu)成匹配公共標(biāo)志點(diǎn)初 始集合F ;否則,如果P_Min_y中有P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離與Q_Min_x或Q_Max_x 或Q_Min_y或Q_Max_y中P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離都相等,且P_n > 3,那么由上述 P_Min_y中的P_n個(gè)標(biāo)志點(diǎn)構(gòu)成公共標(biāo)志點(diǎn)初始集合E,在Q_Min_x或Q_Max_x或Q_Min_y 或Q_Max_y的標(biāo)志點(diǎn)中,與E中的標(biāo)志點(diǎn)為同一個(gè)標(biāo)志點(diǎn)的集合構(gòu)成匹配公共標(biāo)志點(diǎn)初始 集合F ;否則,如果P_Max_y中有P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離與Q_Min_x或Q_Max_x或 Q_Min_y或Q_Max_y中P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離都相等,且P_n彡3,那么由上述P_ Max_y中的P_n個(gè)標(biāo)志點(diǎn)構(gòu)成公共標(biāo)志點(diǎn)初始集合E,在Q_Min_x或Q_Max_x或Q_Min_y或 Q_Max_y的標(biāo)志點(diǎn)中,與E中的標(biāo)志點(diǎn)為同一個(gè)標(biāo)志點(diǎn)的集合構(gòu)成匹配公共標(biāo)志點(diǎn)初始集 合F ;否則,n=n+l,轉(zhuǎn)而執(zhí)行步驟2。
[0024] 步驟7、由E中所有標(biāo)志點(diǎn)構(gòu)成集合E',由F中所有標(biāo)志點(diǎn)構(gòu)成集合F'。
[0025] 步驟8、如果E中的標(biāo)志點(diǎn)都為P_Min_x中的標(biāo)志點(diǎn),那么在P中去掉E'中的標(biāo)志 點(diǎn),構(gòu)成集合P',在P'中搜索X軸坐標(biāo)值最小的標(biāo)志點(diǎn)A ;如果E中的標(biāo)志點(diǎn)都為P_Max_x 中的標(biāo)志點(diǎn),那么在P中去掉E'中的標(biāo)志點(diǎn),構(gòu)成集合P',在P'中搜索X軸坐標(biāo)值最大的 標(biāo)志點(diǎn)A ;如果E中的標(biāo)志點(diǎn)都為P_Min_y中的標(biāo)志點(diǎn),那么在P中去掉E'中的標(biāo)志點(diǎn),構(gòu) 成集合P',在P'中搜索Y軸坐標(biāo)值最小的標(biāo)志點(diǎn)A ;如果E中的標(biāo)志點(diǎn)都為P_Max_y中的 標(biāo)志點(diǎn),那么在P中去掉E'中的標(biāo)志點(diǎn),構(gòu)成集合P',在P'中搜索Y軸坐標(biāo)值最大的標(biāo)志 點(diǎn)A。
[0026] 步驟9、如果F中的標(biāo)志點(diǎn)都為Q_Min_x中的標(biāo)志點(diǎn),那么在Q中去掉F'中的標(biāo)志 點(diǎn),構(gòu)成集合Q',在Q'中搜索X軸坐標(biāo)值最小的標(biāo)志點(diǎn)B ;如果F中的標(biāo)志點(diǎn)都為Q_Max_x 中的標(biāo)志點(diǎn),那么在Q中去掉F'中的標(biāo)志點(diǎn),構(gòu)成集合Q',在Q'中搜索X軸坐標(biāo)值最大的 標(biāo)志點(diǎn)B ;如果F中的標(biāo)志點(diǎn)都為Q_Min_y中的標(biāo)志點(diǎn),那么在Q中去掉F'中的標(biāo)志點(diǎn),構(gòu) 成集合Q',在Q'中搜索Y軸坐標(biāo)值最小的標(biāo)志點(diǎn)B ;如果F中的標(biāo)志點(diǎn)都為Q_Max_y中的 標(biāo)志點(diǎn),那么在Q中去掉F'中的標(biāo)志點(diǎn),構(gòu)成集合Q',在Q'中搜索Y軸坐標(biāo)值最大的標(biāo)志 點(diǎn)B。
[0027] 步驟10、如果標(biāo)志點(diǎn)A到E'中所有標(biāo)志點(diǎn)的歐式距離與標(biāo)志點(diǎn)B到F'中所有對 應(yīng)標(biāo)志點(diǎn)的歐式距離都相等,那么,將標(biāo)志點(diǎn)A加入到E'中,將標(biāo)志點(diǎn)B加入到F'中,并轉(zhuǎn) 而執(zhí)行步驟8 ; 通過以上步驟可以兩組不同視點(diǎn)下的公共標(biāo)志點(diǎn)進(jìn)行自動(dòng)匹配。
【權(quán)利要求】
1.基于動(dòng)態(tài)分層的公共標(biāo)志點(diǎn)自動(dòng)匹配方法,其特征在于:三維掃描儀1通過電纜與 計(jì)算機(jī)2連接,待測物體3的外表面上貼有標(biāo)志點(diǎn),其具體的方法按以下步驟實(shí)現(xiàn): 步驟1、設(shè)由三維掃描儀(1)和計(jì)算機(jī)(2)在視點(diǎn)1處獲得的待測物體(3)的標(biāo)志點(diǎn)集 合為P ;在保證三維掃描儀(1)的參數(shù)不變的情況下,由三維掃描儀(1)在視點(diǎn)2處獲得的 待測物體(3)的標(biāo)志點(diǎn)集合用Q表示,P和Q中共同標(biāo)志點(diǎn)的個(gè)數(shù)為N,N > 3,設(shè)η為3 ; 步驟2、在Ρ中搜索X軸坐標(biāo)值最小的η個(gè)標(biāo)志點(diǎn),由η個(gè)標(biāo)志點(diǎn)構(gòu)成集合P_Min_x, P_Min_x (i)為集合P_Min_x第i個(gè)元素,i=l,2,…η;在P中搜索X軸坐標(biāo)值最大的η個(gè) 標(biāo)志點(diǎn),由η個(gè)標(biāo)志點(diǎn)構(gòu)成集合P_Max_x, P_Max_x (i)為集合P_Max_x第i個(gè)元素 ,i=l, 2, 一η ;在P中搜索Y軸坐標(biāo)值最小的η個(gè)標(biāo)志點(diǎn),由η個(gè)標(biāo)志點(diǎn)構(gòu)成集合P_Min_y,P_Min_ y (i)為集合P_Min_y第i個(gè)元素,i=l,2,…η ;在P中搜索Y軸坐標(biāo)值最大的η個(gè)標(biāo)志點(diǎn), 由η個(gè)標(biāo)志點(diǎn)構(gòu)成集合P_Max_y, P_Max_y ( i )為矩陣P_Max_y第i個(gè)元素,i=l,2,…η ; 步驟3、構(gòu)建Ρ的四個(gè)動(dòng)態(tài)距離矩陣,分別用S_P_Min_x、S_P_Max_x、S_P_Min_y、S_P_ Max_y表示,其中S_P_Min_x (i, j)為矩陣S_P_Min_x第i行,第j列元素,表示P_Min_x (i )到P_Min_x (j )的歐式距離;S_P_Max_x (i, j )為矩陣S_P_Max_x第i行,第j列元素, 表示 P_Max_x (i)到 P_Max_x (j)的歐式距離;S_P_Min_y (i,j)為矩陣 S_P_Min_y 第 i 行,第j列元素,表示P_Min_y (i)?P_Min_y (j)的歐式距離;S_P_Max_y (i,j)為矩陣 S_P_Max_y第i行,第j列元素,表示P_Max_y (i )到P_Max_y (j )的歐式距離; 步驟4、在Q中搜索X軸坐標(biāo)值最小的n個(gè)標(biāo)志點(diǎn),由n個(gè)標(biāo)志點(diǎn)構(gòu)成集合Q_Min_x, Q_Min_x (i)為集合Q_Min_x第i個(gè)元素,i=l,2,…η ;在Q中搜索X軸坐標(biāo)值最大的η個(gè) 標(biāo)志點(diǎn),由η個(gè)標(biāo)志點(diǎn)構(gòu)成集合Q_Max_x, Q_Max_x (i)為集合Q_Max_x第i個(gè)元素,i=l, 2, 一η ;在Q中搜索Y軸坐標(biāo)值最小的η個(gè)標(biāo)志點(diǎn),由η個(gè)標(biāo)志點(diǎn)構(gòu)成集合Q_Min_y,Q_Min_ y (i)為集合Q_Min_y第i個(gè)元素,i=l,2,…η ;在Q中搜索Y軸坐標(biāo)值最大的η個(gè)標(biāo)志點(diǎn), 由η個(gè)標(biāo)志點(diǎn)構(gòu)成集合Q_Max_y, Q_Max_y (i )為矩陣Q_Max_y第i個(gè)元素,i=l,2,…η ; 步驟5、構(gòu)建Q的四個(gè)動(dòng)態(tài)距離矩陣,分別用S_Q_Min_x、S_Q_Max_x、S_Q_Min_y、S_Q_ Max_y表示,其中S_Q_Min_x (i, j)為矩陣S_Q_Min_x第i行,第j列元素,表示Q_Min_x (i )到Q_Min_x (j )的歐式距離;S_Q_Max_x (i, j )為矩陣S_Q_Max_x第i行,第j列元素 , 表示 Q_Max_x (i)到 Q_Max_x (j)的歐式距離;S_Q_Min_y (i, j)為矩陣 S_Q_Min_y 第 i 行,第j列元素,表示Q_Min_y (i)到Q_Min_y (j)的歐式距離;S_Q_Max_y (i,j)為矩陣 S_Q_Max_y第i行,第j列元素,表示Q_Max_y (i )到Q_Max_y (j )的歐式距離; 步驟6、將P的四個(gè)動(dòng)態(tài)距離矩陣中的元素值與Q的四個(gè)動(dòng)態(tài)距離矩陣中的元素值進(jìn) 行判斷是否相等,如果P_Min_x中有P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離與Q_Min_x或Q_Max_x 或Q_Min_y或Q_Max_y中P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離都相等,且P_n > 3,那么由上述 P_Min_x中的P_n個(gè)標(biāo)志點(diǎn)構(gòu)成公共標(biāo)志點(diǎn)初始集合E,在Q_Min_x或Q_Max_x或Q_Min_ y或Q_Max_y的標(biāo)志點(diǎn)中,與E中的標(biāo)志點(diǎn)為同一個(gè)標(biāo)志點(diǎn)的集合構(gòu)成匹配公共標(biāo)志點(diǎn)初 始集合F ;否則,如果P_Max_x中有P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離與Q_Min_x或Q_Max_x 或Q_Min_y或Q_Max_y中P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離都相等,且P_n > 3,那么由上述 P_Max_x中的P_n個(gè)標(biāo)志點(diǎn)構(gòu)成公共標(biāo)志點(diǎn)初始集合E,在Q_Min_x或Q_Max_x或Q_Min_ y或Q_Max_y的標(biāo)志點(diǎn)中,與E中的標(biāo)志點(diǎn)為同一個(gè)標(biāo)志點(diǎn)的集合構(gòu)成匹配公共標(biāo)志點(diǎn)初 始集合F ;否則,如果P_Min_y中有P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離與Q_Min_x或Q_Max_x 或Q_Min_y或Q_Max_y中P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離都相等,且P_n > 3,那么由上述 P_Min_y中的P_n個(gè)標(biāo)志點(diǎn)構(gòu)成公共標(biāo)志點(diǎn)初始集合E,在Q_Min_x或Q_Max_x或Q_Min_y *Q_Max_y的標(biāo)志點(diǎn)中,與E中的標(biāo)志點(diǎn)為同一個(gè)標(biāo)志點(diǎn)的集合構(gòu)成匹配公共標(biāo)志點(diǎn)初始 集合F ;否則,如果P_Max_y中有P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離與Q_Min_x或Q_Max_x或 Q_Min_y或Q_Max_y中P_n個(gè)標(biāo)志點(diǎn)間的所有歐式距離都相等,且P_n彡3,那么由上述P_ Max_y中的P_n個(gè)標(biāo)志點(diǎn)構(gòu)成公共標(biāo)志點(diǎn)初始集合E,在Q_Min_x或Q_Max_x或Q_Min_y或 Q_Max_y的標(biāo)志點(diǎn)中,與E中的標(biāo)志點(diǎn)為同一個(gè)標(biāo)志點(diǎn)的集合構(gòu)成匹配公共標(biāo)志點(diǎn)初始集 合F ;否則,n=n+l,轉(zhuǎn)而執(zhí)行步驟2 ; 步驟7、由E中所有標(biāo)志點(diǎn)構(gòu)成集合E',由F中所有標(biāo)志點(diǎn)構(gòu)成集合F' ; 步驟8、如果E中的標(biāo)志點(diǎn)都為P_Min_x中的標(biāo)志點(diǎn),那么在P中去掉E'中的標(biāo)志點(diǎn), 構(gòu)成集合P',在P'中搜索X軸坐標(biāo)值最小的標(biāo)志點(diǎn)A ;如果E中的標(biāo)志點(diǎn)都為P_Max_x中 的標(biāo)志點(diǎn),那么在P中去掉E'中的標(biāo)志點(diǎn),構(gòu)成集合P',在P'中搜索X軸坐標(biāo)值最大的標(biāo) 志點(diǎn)A ;如果E中的標(biāo)志點(diǎn)都為P_Min_y中的標(biāo)志點(diǎn),那么在P中去掉E'中的標(biāo)志點(diǎn),構(gòu)成 集合P',在P'中搜索Y軸坐標(biāo)值最小的標(biāo)志點(diǎn)A ;如果E中的標(biāo)志點(diǎn)都為P_Max_y中的標(biāo) 志點(diǎn),那么在P中去掉E'中的標(biāo)志點(diǎn),構(gòu)成集合P',在P'中搜索Y軸坐標(biāo)值最大的標(biāo)志點(diǎn) A ; 步驟9、如果F中的標(biāo)志點(diǎn)都為Q_Min_x中的標(biāo)志點(diǎn),那么在Q中去掉F'中的標(biāo)志點(diǎn), 構(gòu)成集合Q',在Q'中搜索X軸坐標(biāo)值最小的標(biāo)志點(diǎn)B ;如果F中的標(biāo)志點(diǎn)都為Q_Max_x中 的標(biāo)志點(diǎn),那么在Q中去掉F'中的標(biāo)志點(diǎn),構(gòu)成集合Q',在Q'中搜索X軸坐標(biāo)值最大的標(biāo) 志點(diǎn)B ;如果F中的標(biāo)志點(diǎn)都為Q_Min_y中的標(biāo)志點(diǎn),那么在Q中去掉F'中的標(biāo)志點(diǎn),構(gòu)成 集合Q',在Q'中搜索Y軸坐標(biāo)值最小的標(biāo)志點(diǎn)B ;如果F中的標(biāo)志點(diǎn)都為Q_Max_y中的標(biāo) 志點(diǎn),那么在Q中去掉F'中的標(biāo)志點(diǎn),構(gòu)成集合Q',在Q'中搜索Y軸坐標(biāo)值最大的標(biāo)志點(diǎn) B ; 步驟10、如果標(biāo)志點(diǎn)A到E'中所有標(biāo)志點(diǎn)的歐式距離與標(biāo)志點(diǎn)B到F'中所有對應(yīng)標(biāo) 志點(diǎn)的歐式距離都相等,那么,將標(biāo)志點(diǎn)A加入到E'中,將標(biāo)志點(diǎn)B加入到F'中,并轉(zhuǎn)而執(zhí) 行步驟8 ; 通過以上步驟可以兩組不同視點(diǎn)下的公共標(biāo)志點(diǎn)進(jìn)行自動(dòng)匹配。
【文檔編號】G06T15/00GK104217457SQ201410408165
【公開日】2014年12月17日 申請日期:2014年8月19日 優(yōu)先權(quán)日:2014年8月19日
【發(fā)明者】韓成, 張超, 權(quán)巍, 蔣振剛, 薛耀紅, 楊華民, 馮欣, 范靜濤, 丁瑩, 趙義武, 楊帆, 白寶興 申請人:長春理工大學(xué)