專利名稱::一種基于動(dòng)態(tài)規(guī)劃的DeBruijn彩色結(jié)構(gòu)光解碼方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種基于動(dòng)態(tài)規(guī)劃的DeBruijn彩色結(jié)構(gòu)光解碼方法,屬于計(jì)算機(jī)圖像處理
技術(shù)領(lǐng)域:
。
背景技術(shù):
:結(jié)構(gòu)光三維重構(gòu)方法主要分為兩個(gè)部分,第一部分是投影結(jié)構(gòu)光編碼圖像并拍攝獲得調(diào)制后的結(jié)構(gòu)光圖像,然后對(duì)調(diào)制后的結(jié)構(gòu)光圖像進(jìn)行解碼得到該圖像的二維信息;第二部分是根據(jù)投影機(jī)、攝像機(jī)和待測(cè)物體的相對(duì)位置把調(diào)制后的結(jié)構(gòu)光圖像的二維信息轉(zhuǎn)化為待測(cè)物體的三維信息。在基于結(jié)構(gòu)光的三維重構(gòu)過程中,利用各種編碼策略可以使像素點(diǎn)本身帶有先驗(yàn)編碼信息,編碼策略選擇得合適與否影響著匹配算法的復(fù)雜性和三維重構(gòu)的準(zhǔn)確性,彩色編碼方法可分為時(shí)間編碼、空間編碼、直接編碼等。通過對(duì)調(diào)制后的結(jié)構(gòu)光圖像進(jìn)行解碼,可以得到調(diào)制后結(jié)構(gòu)光圖像中彩色條紋上的像素點(diǎn)與結(jié)構(gòu)光編碼圖像中的彩色條紋間的匹配關(guān)系。迪布魯英(DeBruijn)序列,具有良好的隨機(jī)性和接近于白噪聲的相關(guān)函數(shù),并且有預(yù)先的可確定性和可重復(fù)性。n元m級(jí)DeBruijn序列是一個(gè)長(zhǎng)度為nm的循環(huán)序列式,為,…,<1,其中…值取自n個(gè)基元,基元可以為任意數(shù)字或符號(hào)。序列中任意連續(xù)的m位組合都是唯一的,這稱為迪布魯英序列的窗口特性。由迪布魯英偽隨機(jī)序列生成的彩色結(jié)構(gòu)光編碼圖像可以增加彩色條紋的數(shù)量并且確保編碼的惟一性,該方法可以應(yīng)用到對(duì)運(yùn)動(dòng)物體進(jìn)行重建的過程中,現(xiàn)已成為了彩色結(jié)構(gòu)光三維重構(gòu)最廣泛應(yīng)用的方法之一。孔令富等人利用序列的窗口特性和空間鄰域編碼思想對(duì)各條紋邊界進(jìn)行標(biāo)識(shí),采用全局優(yōu)化思想對(duì)條紋邊界進(jìn)行最優(yōu)鄰域匹配,不需要假定物體全表面單調(diào),對(duì)其連續(xù)性也不做嚴(yán)格要求。Zhang等人引入了多通道動(dòng)態(tài)規(guī)劃(Multi-passDynamicProgramming)思想,來克服圖像中的條紋遮擋問題,但常會(huì)出現(xiàn)對(duì)局部單調(diào)區(qū)域之間的邊界集的解碼誤差?,F(xiàn)有基于動(dòng)態(tài)規(guī)劃的解碼方法,沒有充分考慮局部鄰域信息,因此,解碼精度不高。
發(fā)明內(nèi)容為了快速地對(duì)DeBruijn彩色結(jié)構(gòu)光編碼圖像進(jìn)行高精度的解碼,本發(fā)明提出了一種基于動(dòng)態(tài)規(guī)劃的DeBruijn彩色結(jié)構(gòu)光解碼方法。一種基于動(dòng)態(tài)規(guī)劃的DeBruijn彩色結(jié)構(gòu)光解碼方法,其特征在于,該方法所需設(shè)備和實(shí)施步驟如下所需設(shè)備如圖1所示,所需設(shè)備由5部分組成投影機(jī)1,投影屏幕2,攝像機(jī)3,計(jì)算機(jī)4,待測(cè)物體5;投影機(jī)1和攝像機(jī)3都通過電纜與計(jì)算機(jī)4連接。實(shí)現(xiàn)步驟步驟1、在計(jì)算機(jī)4中,利用具有隨機(jī)特性與確定性的DeBruijn偽隨機(jī)序列,產(chǎn)生一幅7元3級(jí)DeBruijn序列彩色結(jié)構(gòu)光編碼圖像,如圖2所示,并存儲(chǔ)在計(jì)算機(jī)4中。該DeBruijn序列彩色結(jié)構(gòu)光編碼圖像中任意兩條相鄰彩色條紋的顏色都不相同,每條彩色條紋的所有像素點(diǎn)的顏色都相同。步驟2、計(jì)算機(jī)4通過投影機(jī)1將步驟1中產(chǎn)生的DeBruijn序列彩色結(jié)構(gòu)光編碼圖像經(jīng)過待測(cè)物體5調(diào)制后投影到投影屏幕2上,生成調(diào)制后的投影圖像。步驟3、計(jì)算機(jī)4通過攝像機(jī)3拍攝步驟2生成的調(diào)制后的投影圖像,得到彩色結(jié)構(gòu)光編碼圖片。步驟4、計(jì)算機(jī)4采用傳統(tǒng)的canny算法提取步驟3得到的彩色結(jié)構(gòu)光編碼圖片中每條彩色條紋的上邊界和下邊界,再計(jì)算每條彩色條紋的上邊界和下邊界的中間位置,得到每條彩色條紋的中心彩色條紋;設(shè)共得到m條中心彩色條紋,每條中心彩色條紋有n個(gè)像素點(diǎn);在m行上依次排列每條彩色條紋的n個(gè)像素點(diǎn),得到由這些像素點(diǎn)構(gòu)成的mXn階矩陣Z。步驟5、設(shè)每條中心彩色條紋上的像素點(diǎn)P的RGB值分別為r,g,b;將每條中心彩色條紋上的每個(gè)像素點(diǎn)的RGB值都按照公式Pc=c/255,cG{r,g,b}歸一化,得到該像素點(diǎn)的歸一化RGB值分別為Pr,Pg,Pb。步驟6、計(jì)算彩色結(jié)構(gòu)光編碼圖片中每條中心彩色條紋的每個(gè)像素點(diǎn)的第一類梯度值和第二類梯度值,其中計(jì)算第一類梯度值的具體方法如下設(shè)矩陣Z的某列元素構(gòu)成向量E,像素點(diǎn)P為向量E的第i個(gè)像素點(diǎn),點(diǎn)P的歸一化RGB值分別為Pr,Pg,Pb;像素點(diǎn)M為向量E的第i+1個(gè)像素點(diǎn),點(diǎn)M的歸一化RGB值分別為Mr,Mg,Mb,那么點(diǎn)P的第一類梯度值分別為Pr-Mr,Pg-Mg,Pb-Mb;矩陣Z的最后一行的每個(gè)像素點(diǎn)的第一類梯度值與該像素點(diǎn)的歸一化RGB值相同;將矩陣Z的每個(gè)像素點(diǎn)的第一類梯度值放在與此像素點(diǎn)對(duì)應(yīng)的位置,得到一個(gè)第一類梯度值矩陣,記為T1;計(jì)算第二類梯度值的具體方法如下設(shè)矩陣Z的某列元素構(gòu)成向量E,像素點(diǎn)P為向量E的第i個(gè)像素點(diǎn),點(diǎn)P的歸一化RGB值分別為Pr,Pg,Pb;像素點(diǎn)M為向量E的第i_l個(gè)像素點(diǎn),點(diǎn)M的歸一化RGB值分別為Mr,Mg,Mb,那么點(diǎn)P的第二類梯度值分別為Pr-Mr,Pg-Mg,Pb-Mb;矩陣Z的第一行的每個(gè)像素點(diǎn)的第二類梯度值與該像素點(diǎn)的歸一化RGB值相同;將矩陣Z的每個(gè)像素點(diǎn)的第二類梯度值放在與此像素點(diǎn)對(duì)應(yīng)的位置,得到一個(gè)第二類梯度值矩陣,記為T2;步驟7、設(shè)由所述的DeBruijn序列彩色結(jié)構(gòu)光編碼圖像中的彩色條紋上的像素點(diǎn)構(gòu)成的mXn階矩陣為Z1,利用Z1的每個(gè)像素點(diǎn)的歸一化RGB值得到與Z1相應(yīng)的第一類梯度值矩陣TZ1和第二類梯度值矩陣TZ2;在TZ1中任取一列元素做成向量E’,記E’的第i個(gè)元素為(ej,eig,eib),與矩陣Z相應(yīng)的第一類梯度值矩陣T1中第j列第k行元素為(qr,qg,qb);根據(jù)以下公式計(jì)算(e,,ej,e,)和(qr,qg,qb)的匹配度,-1qc<-0.55&-0.15C{eci,qc)=0.71qc>0.850.55<0.85=l,ce{r,g,b}由此得到矩陣Cj的第i行第k列元素利用此方法,依次得到n個(gè)mXm矩陣C1,...,Cn;記與矩陣Z相應(yīng)的第二類梯度值矩陣T2中第j列第k個(gè)元素為(^,qg,qb);根據(jù)上述公式計(jì)算此列中的第i行元素與矩陣Z相應(yīng)的第二類梯度值矩陣T2中第j列第k行元素的匹配度,得到矩陣Dj的第i行第k列元素利用此方法,依次得到n個(gè)mXm矩陣Dl,...,Dn。步驟8、根據(jù)公式i=2,3,,m-1,k=2,3,,m-1,j=1,2,,n,得到n個(gè)mXm矩陣El,...,En。步驟9、構(gòu)造矩陣Hk,設(shè)元素Hk(i,j)是矩陣Hk的第i行第j列元素,k=1,2,...,n;Ek(i,j)是矩陣Ek的第i行第j列元素,k=1,2,,n;那么Hk(l,j)=Ek(l,j),j=1,2,...,m;Hk(i,1)=Ek(i,1),i=2,3,...,m;Hk(i,j)=max{Hk(i-1,j),Hk(i_l,j-l)+Ek(i,j),Hk(i,j-1)},i,j=2,3,...,m;由此可以得到矩陣n個(gè)矩陣Hl,...,Hn;按照從上到下,從左到右的順序,i,j=2,3,...,m,如果Hk(i_l,j)=Hk(i_l,j-l)+Ek(i,j)>Hk(i,j-1)或Hk(i,j-1)=Hk(i-1,j-l)+Ek(i,j)>Hk(i-1,j)或Hk(i-1,j)=Hk(i,j-1)=Hk(i-1,j-l)+Ek(i,j),那么Hk(i,j)=Hk(i-1,j-l)+Ek(i,j);如果Hk(i-l,j)=Hk(i,j-1)>Hk(i-1,j-l)+Ek(i,j),那么Hk(i,j)=Hk(i,j-1);引入標(biāo)記Lk(i,j),Lk(l,j)=0,Lk(i,l)=0,i,j=1,2,,m;如果Hk(i,j)的值通過公式Hk(i,j)=Hk(i-1,j-l)+Ek(i,j)得到,那么Lk(i,j)=l,i,j=2,3,...,111;;如果他(1,力的值通過公式Hk(i,j)=Hk(i,j-l)得到,那么Lk(i,j)=2;如果他(土,j)的值通過公式Hk(i,j)=Hk(i-1,j)得到,那么Lk(i,j)=0,i,j=2,3,...,m。步驟10、設(shè)向量E’是由矩陣Z1中的某一列元素組成的,依次利用n個(gè)矩陣Hl,...,Hn,WLk(m,m)元素開始,在矩陣Z中像素點(diǎn)尋找與向量E’中像素點(diǎn)的匹配關(guān)系,具體方法如下如果Lk(m,m)=1,那么與像素點(diǎn)E,(m)匹配的像素點(diǎn)為Z(m,k),對(duì)Lk(m-l,m_l)繼續(xù)尋找與E,(m-1)匹配的像素點(diǎn);如果Lk(m,m)=2,那么矩陣Z中沒有與像素點(diǎn)E,(m)匹配的像素點(diǎn),對(duì)Lk(m,m-1)繼續(xù)尋找與E’(m)匹配的像素點(diǎn);如果Lk(m,m)=0,那么矩陣Z中沒有與像素點(diǎn)E’(m)匹配的像素點(diǎn),對(duì)Lk(m-l,m)繼續(xù)尋找與E’(m-1)匹配的像素占.如此繼續(xù)下去;設(shè)需要對(duì)Lk(2,j)尋找與E’(2)的匹配點(diǎn),j彡2,如果Lk(2,j)=1,那么與像素點(diǎn)E’(2)匹配的像素點(diǎn)為Z(j,k)且與像素點(diǎn)E’(1)匹配的像素點(diǎn)為Z(j-1,k);如果Lk(2,j)=0或Lk(2,j)=2,那么沒有與像素點(diǎn)E’(2)匹配的像素點(diǎn),也沒有與像素點(diǎn)E’(1)匹配的像素點(diǎn);設(shè)需要對(duì)Lk(i,2)尋找與E’(i)的匹配點(diǎn),i彡2,如果Lk(i,2)=1,那么與像素點(diǎn)E’(i)匹配的像素點(diǎn)為Z(j,k)且與像素點(diǎn)E’(i-1)匹配的像素點(diǎn)為Z(l,k);如果Lk(i,2)=0或Lk(i,2)=2,那么沒有與像素點(diǎn)E’(i)匹配的像素點(diǎn),也沒有與像素點(diǎn)E’(i-1)匹配的像素點(diǎn);如果j=1或i=1,在矩陣Z中像素點(diǎn)尋找與向量E’中像素點(diǎn)的匹配關(guān)系結(jié)束。通過以上步驟得到調(diào)制后彩色結(jié)構(gòu)光編碼圖片中每條中心彩色條紋上的每個(gè)像素點(diǎn)與原始編碼圖像中的第幾條彩色條紋匹配,實(shí)現(xiàn)了一種基于動(dòng)態(tài)規(guī)劃的DeBruijn彩色結(jié)構(gòu)光解碼方法,為重構(gòu)算法作好了準(zhǔn)備。本發(fā)明針對(duì)基于DeBruijn序列的彩色結(jié)構(gòu)光編碼圖像,充分利用局部鄰域信息,采用基于動(dòng)態(tài)規(guī)劃思想解決了調(diào)制后圖像中心彩色條紋上每個(gè)像素點(diǎn)與原始編碼圖像中彩色條紋的匹配問題,提高了解碼算法精度。本發(fā)明提供的方法不需要假定待測(cè)物體全表面單調(diào),對(duì)其連續(xù)性也不做嚴(yán)格要求,還能推廣到基于條紋列或條紋邊界列的解碼算法中。圖1是一種基于動(dòng)態(tài)規(guī)劃的DeBruijn彩色結(jié)構(gòu)光解碼方法所需設(shè)備構(gòu)成圖。此圖也是說明書摘要附圖。其中1為投影機(jī),2為投影屏幕,3為攝像機(jī),4為計(jì)算機(jī),5為待測(cè)物體。圖2是DeBruijn序列生成的彩色結(jié)構(gòu)光編碼圖。具體實(shí)施例方式一種基于動(dòng)態(tài)規(guī)劃的DeBruijn彩色結(jié)構(gòu)光解碼方法,該方法所需設(shè)備和實(shí)施步驟如下所需設(shè)備如圖1所示,所需設(shè)備由5部分組成投影機(jī)1,投影屏幕2,攝像機(jī)3,計(jì)算機(jī)4,待測(cè)物體5;投影機(jī)1和攝像機(jī)3都通過電纜與計(jì)算機(jī)4連接。實(shí)現(xiàn)步驟步驟1、在計(jì)算機(jī)4中,利用具有隨機(jī)特性與確定性的DeBruijn偽隨機(jī)序列,產(chǎn)生一幅7元3級(jí)DeBruijn序列彩色結(jié)構(gòu)光編碼圖像,如圖2所示,并存儲(chǔ)在計(jì)算機(jī)4中。該DeBruijn序列彩色結(jié)構(gòu)光編碼圖像中任意兩條相鄰彩色條紋的顏色都不相同,每條彩色條紋的所有像素點(diǎn)的顏色都相同。步驟2、計(jì)算機(jī)4通過投影機(jī)1將步驟1中產(chǎn)生的DeBruijn序列彩色結(jié)構(gòu)光編碼圖像經(jīng)過待測(cè)物體5調(diào)制后投影到投影屏幕2上,生成調(diào)制后的投影圖像。步驟3、計(jì)算機(jī)4通過攝像機(jī)3拍攝步驟2生成的調(diào)制后的投影圖像,得到彩色結(jié)構(gòu)光編碼圖片。步驟4、計(jì)算機(jī)4采用傳統(tǒng)的canny算法提取步驟3得到的彩色結(jié)構(gòu)光編碼圖片中每條彩色條紋的上邊界和下邊界,再計(jì)算每條彩色條紋的上邊界和下邊界的中間位置,得到每條彩色條紋的中心彩色條紋;設(shè)共得到m條中心彩色條紋,每條中心彩色條紋有n個(gè)像素點(diǎn);在m行上依次排列每條彩色條紋的n個(gè)像素點(diǎn),得到由這些像素點(diǎn)構(gòu)成的mXn階矩陣Z。步驟5、設(shè)每條中心彩色條紋上的像素點(diǎn)P的RGB值分別為r,g,b;將每條中心彩色條紋上的每個(gè)像素點(diǎn)的RGB值都按照公式Pc=c/255,cG{r,g,b}歸一化,得到該像素點(diǎn)的歸一化RGB值分別為Pr,Pg,Pb。步驟6、計(jì)算彩色結(jié)構(gòu)光編碼圖片中每條中心彩色條紋的每個(gè)像素點(diǎn)的第一類梯度值和第二類梯度值,其中計(jì)算第一類梯度值的具體方法如下設(shè)矩陣Z的某列元素構(gòu)成向量E,像素點(diǎn)P為向量E的第i個(gè)像素點(diǎn),點(diǎn)P的歸一化RGB值分別為Pr,Pg,Pb;像素點(diǎn)M為向量E的第i+1個(gè)像素點(diǎn),點(diǎn)M的歸一化RGB值分別為Mr,Mg,Mb,那么點(diǎn)P的第一類梯度值分別為Pr-Mr,Pg-Mg,Pb-Mb;矩陣Z的最后一行的每個(gè)像素點(diǎn)的第一類梯度值與該像素點(diǎn)的歸一化RGB值相同;將矩陣Z的每個(gè)像素點(diǎn)的第一類梯度值放在與此像素點(diǎn)對(duì)應(yīng)的位置,得到一個(gè)第一類梯度值矩陣,記為T1;計(jì)算第二類梯度值的具體方法如下設(shè)矩陣Z的某列元素構(gòu)成向量E,像素點(diǎn)P為向量E的第i個(gè)像素點(diǎn),點(diǎn)P的歸一化RGB值分別為Pr,Pg,Pb;像素點(diǎn)M為向量E的第i_l個(gè)像素點(diǎn),點(diǎn)M的歸一化RGB值分別為Mr,Mg,Mb,那么點(diǎn)P的第二類梯度值分別為Pr-Mr,Pg-Mg,Pb-Mb;矩陣Z的第一行的每個(gè)像素點(diǎn)的第二類梯度值與該像素點(diǎn)的歸一化RGB值相同;將矩陣Z的每個(gè)像素點(diǎn)的第二類梯度值放在與此像素點(diǎn)對(duì)應(yīng)的位置,得到一個(gè)第二類梯度值矩陣,記為T2。步驟7、設(shè)由所述的DeBruijn序列彩色結(jié)構(gòu)光編碼圖像中的彩色條紋上的像素點(diǎn)構(gòu)成的mXn階矩陣為Z1,利用Z1的每個(gè)像素點(diǎn)的歸一化RGB值得到與Z1相應(yīng)的第一類梯度值矩陣TZ1和第二類梯度值矩陣TZ2;在TZ1中任取一列元素做成向量E’,記E’的第i個(gè)元素為(ej,eig,eib),與矩陣Z相應(yīng)的第一類梯度值矩陣T1中第j列第k行元素為(qr,qg,qb);根據(jù)以下公式計(jì)算(e,,ej,e,)和(qr,qg,qb)的匹配度,C(e%qc)=-10.7qc<一0.55-0.55〈禮<0.85,<=1,ce{r,b)%>0.85由此得到矩陣Cj的第i行第k列元素利用此方法,依次得到n個(gè)mXm矩陣C1,...,Cn;記與矩陣Z相應(yīng)的第二類梯度值矩陣T2中第j列第k個(gè)元素為(qr,qg,qb);根據(jù)上述公式計(jì)算此列中的第i行元素與矩陣Z相應(yīng)的第二類梯度值矩陣T2中第j列第k行元素的匹配度,得到矩陣Dj的第i行第k列元素利用此方法,依次得到n個(gè)mXm矩陣Dl,...,Dn。步驟8、根據(jù)公式i=2,3,...,m_l,k=2,3,...,m_l,j=1,2,...,n,得到n個(gè)mXm矩陣El,...,En。步驟9、構(gòu)造矩陣Hk,設(shè)元素Hk(i,j)是矩陣Hk的第i行第j列元素,k=1,2,...,n;Ek(i,j)是矩陣Ek的第i行第j列元素,k=1,2,,n;那么Hk(l,j)=Ek(l,j),j=1,2,...,m;Hk(i,1)=Ek(i,1),i=2,3,...,m;Hk(i,j)=max{Hk(i-1,j),Hk(i_l,j-l)+Ek(i,j),Hk(i,j-1)},i,j=2,3,...,m;由此可以得到矩陣n個(gè)矩陣Hl,...,Hn;按照從上到下,從左到右的順序,i,j=2,3,...,m,如果Hk(i_l,j)=Hk(i_l,j-l)+Ek(i,j)>Hk(i,j-1)或Hk(i,j-1)=Hk(i-1,j-l)+Ek(i,j)>Hk(i-1,j)或Hk(i-1,j)=Hk(i,j-1)=Hk(i-1,j-l)+Ek(i,j),那么Hk(i,j)=Hk(i-1,j-l)+Ek(i,j);如果Hk(i-l,j)=Hk(i,j-1)>Hk(i-1,j-l)+Ek(i,j),那么Hk(i,j)=Hk(i,j-1);引入標(biāo)記Lk(i,j),Lk(l,j)=0,Lk(i,l)=0,i,j=1,2,...,m;如果Hk(i,j)的值通過公式Hk(i,j)=Hk(i-1,j-l)+Ek(i,j)得到,那么Lk(i,j)=l,i,j=2,3,...,111;;如果他(1,力的值通過公式Hk(i,j)=Hk(i,j-l)得到,那么Lk(i,j)=2;如果他(土,j)的值通過公式Hk(i,j)=Hk(i-1,j)得到,那么Lk(i,j)=0,i,j=2,3,...,m。步驟10、設(shè)向量E’是由矩陣Z1中的某一列元素組成的,依次利用n個(gè)矩陣Hl,...,Hn,WLk(m,m)元素開始,在矩陣Z中像素點(diǎn)尋找與向量E’中像素點(diǎn)的匹配關(guān)系,具體方法如下如果Lk(m,m)=1,那么與像素點(diǎn)E,(m)匹配的像素點(diǎn)為Z(m,k),對(duì)Lk(m-l,m_l)繼續(xù)尋找與E,(m-1)匹配的像素點(diǎn);如果Lk(m,m)=2,那么矩陣Z中沒有與像素點(diǎn)E,(m)匹配的像素點(diǎn),對(duì)Lk(m,m-1)繼續(xù)尋找與E’(m)匹配的像素點(diǎn);如果Lk(m,m)=0,那么矩陣Z中沒有與像素點(diǎn)E’(m)匹配的像素點(diǎn),對(duì)Lk(m-l,m)繼續(xù)尋找與E’(m-1)匹配的像素占.如此繼續(xù)下去;設(shè)需要對(duì)Lk(2,j)尋找與E’(2)的匹配點(diǎn),j彡2,如果Lk(2,j)=1,那么與像素點(diǎn)E’(2)匹配的像素點(diǎn)為Z(j,k)且與像素點(diǎn)E’(1)匹配的像素點(diǎn)為Z(j-1,k);如果Lk(2,j)=0或Lk(2,j)=2,那么沒有與像素點(diǎn)E’(2)匹配的像素點(diǎn),也沒有與像素點(diǎn)E’(1)匹配的像素點(diǎn);設(shè)需要對(duì)Lk(i,2)尋找與E’(i)的匹配點(diǎn),i彡2,如果Lk(i,2)=1,那么與像素點(diǎn)E’(i)匹配的像素點(diǎn)為Z(j,k)且與像素點(diǎn)E’(i-1)匹配的像素點(diǎn)為Z(l,k);如果Lk(i,2)=0或Lk(i,2)=2,那么沒有與像素點(diǎn)E’(i)匹配的像素點(diǎn),也沒有與像素點(diǎn)E’(i-1)匹配的像素點(diǎn);如果j=1或i=1,在矩陣Z中像素點(diǎn)尋找與向量E’中像素點(diǎn)的匹配關(guān)系結(jié)束。通過以上步驟得到調(diào)制后彩色結(jié)構(gòu)光編碼圖片中每條中心彩色條紋上的每個(gè)像素點(diǎn)與原始編碼圖像中的第幾條彩色條紋匹配,實(shí)現(xiàn)了一種基于動(dòng)態(tài)規(guī)劃的DeBruijn彩色結(jié)構(gòu)光解碼方法,為重構(gòu)算法作好了準(zhǔn)備。權(quán)利要求一種基于動(dòng)態(tài)規(guī)劃的DeBruijn彩色結(jié)構(gòu)光解碼方法,其特征在于,該方法所需設(shè)備和實(shí)施步驟如下所需設(shè)備所需設(shè)備由5部分組成投影機(jī)(1),投影屏幕(2),攝像機(jī)(3),計(jì)算機(jī)(4),待測(cè)物體(5);投影機(jī)(1)和攝像機(jī)(3)都通過電纜與計(jì)算機(jī)(4)連接;實(shí)現(xiàn)步驟步驟1、在計(jì)算機(jī)4中,利用具有隨機(jī)特性與確定性的DeBruijn偽隨機(jī)序列,產(chǎn)生一幅7元3級(jí)DeBruijn序列彩色結(jié)構(gòu)光編碼圖像,如圖2所示,并存儲(chǔ)在計(jì)算機(jī)4中;該DeBruijn序列彩色結(jié)構(gòu)光編碼圖像中任意兩條相鄰彩色條紋的顏色都不相同,每條彩色條紋的所有像素點(diǎn)的顏色都相同;步驟2、計(jì)算機(jī)4通過投影機(jī)1將步驟1中產(chǎn)生的DeBruijn序列彩色結(jié)構(gòu)光編碼圖像經(jīng)過待測(cè)物體5調(diào)制后投影到投影屏幕2上,生成調(diào)制后的投影圖像;步驟3、計(jì)算機(jī)4通過攝像機(jī)3拍攝步驟2生成的調(diào)制后的投影圖像,得到彩色結(jié)構(gòu)光編碼圖片;步驟4、計(jì)算機(jī)4采用傳統(tǒng)的canny算法提取步驟3得到的彩色結(jié)構(gòu)光編碼圖片中每條彩色條紋的上邊界和下邊界,再計(jì)算每條彩色條紋的上邊界和下邊界的中間位置,得到每條彩色條紋的中心彩色條紋;設(shè)共得到m條中心彩色條紋,每條中心彩色條紋有n個(gè)像素點(diǎn);在m行上依次排列每條彩色條紋的n個(gè)像素點(diǎn),得到由這些像素點(diǎn)構(gòu)成的m×n階矩陣Z;步驟5、設(shè)每條中心彩色條紋上的像素點(diǎn)P的RGB值分別為r,g,b;將每條中心彩色條紋上的每個(gè)像素點(diǎn)的RGB值都按照公式Pc=c/255,c∈{r,g,b}歸一化,得到該像素點(diǎn)的歸一化RGB值分別為Pr,Pg,Pb;步驟6、計(jì)算彩色結(jié)構(gòu)光編碼圖片中每條中心彩色條紋的每個(gè)像素點(diǎn)的第一類梯度值和第二類梯度值,其中計(jì)算第一類梯度值的具體方法如下設(shè)矩陣Z的某列元素構(gòu)成向量E,像素點(diǎn)P為向量E的第i個(gè)像素點(diǎn),點(diǎn)P的歸一化RGB值分別為Pr,Pg,Pb;像素點(diǎn)M為向量E的第i+1個(gè)像素點(diǎn),點(diǎn)M的歸一化RGB值分別為Mr,Mg,Mb,那么點(diǎn)P的第一類梯度值分別為Pr-Mr,Pg-Mg,Pb-Mb;矩陣Z的最后一行的每個(gè)像素點(diǎn)的第一類梯度值與該像素點(diǎn)的歸一化RGB值相同;將矩陣Z的每個(gè)像素點(diǎn)的第一類梯度值放在與此像素點(diǎn)對(duì)應(yīng)的位置,得到一個(gè)第一類梯度值矩陣,記為T1;計(jì)算第二類梯度值的具體方法如下設(shè)矩陣Z的某列元素構(gòu)成向量E,像素點(diǎn)P為向量E的第i個(gè)像素點(diǎn),點(diǎn)P的歸一化RGB值分別為Pr,Pg,Pb;像素點(diǎn)M為向量E的第i-1個(gè)像素點(diǎn),點(diǎn)M的歸一化RGB值分別為Mr,Mg,Mb,那么點(diǎn)P的第二類梯度值分別為Pr-Mr,Pg-Mg,Pb-Mb;矩陣Z的第一行的每個(gè)像素點(diǎn)的第二類梯度值與該像素點(diǎn)的歸一化RGB值相同;將矩陣Z的每個(gè)像素點(diǎn)的第二類梯度值放在與此像素點(diǎn)對(duì)應(yīng)的位置,得到一個(gè)第二類梯度值矩陣,記為T2;步驟7、設(shè)由所述的DeBruijn序列彩色結(jié)構(gòu)光編碼圖像中的彩色條紋上的像素點(diǎn)構(gòu)成的m×n階矩陣為Z1,利用Z1的每個(gè)像素點(diǎn)的歸一化RGB值得到與Z1相應(yīng)的第一類梯度值矩陣TZ1和第二類梯度值矩陣TZ2;在TZ1中任取一列元素做成向量E’,記E’的第i個(gè)元素為(eir,eig,eib),與矩陣Z相應(yīng)的第一類梯度值矩陣T1中第j列第k行元素為(qr,qg,qb);根據(jù)以下公式計(jì)算(eir,eig,eib)和(qr,qg,qb)的匹配度,<mrow><mi>C</mi><mrow><mo>(</mo><msubsup><mi>e</mi><mi>i</mi><mi>c</mi></msubsup><mo>,</mo><msub><mi>q</mi><mi>c</mi></msub><mo>)</mo></mrow><mo>=</mo><mfencedopen='{'close=''><mtable><mtr><mtd><mo>-</mo><mn>1</mn></mtd><mtd><msub><mi>q</mi><mi>c</mi></msub><mo><</mo><mo>-</mo><mn>0.55</mn></mtd></mtr><mtr><mtd><mfrac><mrow><msub><mi>q</mi><mi>c</mi></msub><mo>-</mo><mn>0.15</mn></mrow><mn>0.7</mn></mfrac></mtd><mtd><mo>-</mo><mn>0.55</mn><mo><</mo><msub><mi>q</mi><mi>c</mi></msub><mo>≤</mo><mn>0.85</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>q</mi><mi>c</mi></msub><mo>></mo><mn>0.85</mn></mtd></mtr></mtable></mfenced><mo>,</mo><msubsup><mi>e</mi><mi>i</mi><mi>c</mi></msubsup><mo>=</mo><mn>1</mn><mo>,</mo><mi>c</mi><mo>∈</mo><mo>{</mo><mi>r</mi><mo>,</mo><mi>g</mi><mo>,</mo><mi>b</mi><mo>}</mo></mrow><mrow><mi>C</mi><mrow><mo>(</mo><msubsup><mi>e</mi><mi>i</mi><mi>c</mi></msubsup><mo>,</mo><msub><mi>q</mi><mi>c</mi></msub><mo>)</mo></mrow><mo>=</mo><mfencedopen='{'close=''><mtable><mtr><mtd><mo>-</mo><mn>1</mn></mtd><mtd><mo>|</mo><msub><mi>q</mi><mi>c</mi></msub><mo>|</mo><mo>></mo><mn>1</mn><mo>.</mo><mn>55</mn></mtd></mtr><mtr><mtd><mn>1</mn><mo>-</mo><mfrac><mrow><msub><mrow><mo>|</mo><mi>q</mi></mrow><mi>c</mi></msub><mo>|</mo><mo>-</mo><mn>0.15</mn></mrow><mn>0.7</mn></mfrac></mtd><mtd><mn>0</mn><mo>.</mo><mn>55</mn><mo><</mo><mo>|</mo><msub><mi>q</mi><mi>c</mi></msub><mo>|</mo><mo>≤</mo><mn>1</mn><mo>.</mo><mn>55</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mo>|</mo><msub><mi>q</mi><mi>c</mi></msub><mo>|</mo><mo><</mo><mn>0.15</mn></mtd></mtr></mtable></mfenced><mo>,</mo><msubsup><mi>e</mi><mi>i</mi><mi>c</mi></msubsup><mo>=</mo><mn>0</mn><mo>,</mo><mi>c</mi><mo>∈</mo><mo>{</mo><mi>r</mi><mo>,</mo><mi>g</mi><mo>,</mo><mi>b</mi><mo>}</mo></mrow><mrow><mi>C</mi><mrow><mo>(</mo><msubsup><mi>e</mi><mi>i</mi><mi>c</mi></msubsup><mo>,</mo><msub><mi>q</mi><mi>c</mi></msub><mo>)</mo></mrow><mo>=</mo><mfencedopen='{'close=''><mtable><mtr><mtd><mo>-</mo><mn>1</mn></mtd><mtd><msub><mi>q</mi><mi>c</mi></msub><mo>></mo><mn>0.55</mn></mtd></mtr><mtr><mtd><mfrac><mrow><msub><mrow><mo>-</mo><mi>q</mi></mrow><mi>c</mi></msub><mo>-</mo><mn>0.15</mn></mrow><mn>0.7</mn></mfrac></mtd><mtd><mo>-</mo><mn>0.85</mn><mo><</mo><msub><mi>q</mi><mi>c</mi></msub><mo>≤</mo><mn>0.55</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>q</mi><mi>c</mi></msub><mo><</mo><mo>-</mo><mn>0.85</mn></mtd></mtr></mtable></mfenced><mo>,</mo><msubsup><mi>e</mi><mi>i</mi><mi>c</mi></msubsup><mo>=</mo><mo>-</mo><mn>1</mn><mo>,</mo><mi>c</mi><mo>∈</mo><mo>{</mo><mi>r</mi><mo>,</mo><mi>g</mi><mo>,</mo><mi>b</mi><mo>}</mo></mrow>由此得到矩陣Cj的第i行第k列元素<mrow><msubsup><mi>C</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mi>k</mi></mrow></msubsup><mo>=</mo><mrow><mo>(</mo><msubsup><mi>C</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mi>k</mi></mrow></msubsup><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><msubsup><mi>C</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mi>k</mi></mrow></msubsup><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow><mo>,</mo><msubsup><mi>C</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mi>k</mi></mrow></msubsup><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><mi>C</mi><mrow><mo>(</mo><msubsup><mi>e</mi><mi>i</mi><mi>r</mi></msubsup><mo>,</mo><msub><mi>q</mi><mi>r</mi></msub><mo>)</mo></mrow><mo>,</mo><mi>C</mi><mrow><mo>(</mo><msubsup><mi>e</mi><mi>i</mi><mi>g</mi></msubsup><mo>,</mo><msub><mi>q</mi><mi>g</mi></msub><mo>)</mo></mrow><mo>,</mo><mi>C</mi><mrow><mo>(</mo><msubsup><mi>e</mi><mi>i</mi><mi>b</mi></msubsup><mo>,</mo><msub><mi>q</mi><mi>b</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow><mo>,</mo></mrow>利用此方法,依次得到n個(gè)m×m矩陣C1,…,Cn;記與矩陣Z相應(yīng)的第二類梯度值矩陣T2中第j列第k個(gè)元素為(qr,qg,qb);根據(jù)上述公式計(jì)算此列中的第i行元素與矩陣Z相應(yīng)的第二類梯度值矩陣T2中第j列第k行元素的匹配度,得到矩陣Dj的第i行第k列元素<mrow><msubsup><mi>D</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mi>k</mi></mrow></msubsup><mo>=</mo><mrow><mo>(</mo><msubsup><mi>D</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mi>k</mi></mrow></msubsup><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><msubsup><mi>D</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mi>k</mi></mrow></msubsup><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow><mo>,</mo><msubsup><mi>D</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mi>k</mi></mrow></msubsup><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><mi>C</mi><mrow><mo>(</mo><msubsup><mi>e</mi><mi>i</mi><mi>r</mi></msubsup><mo>,</mo><msub><mi>q</mi><mi>r</mi></msub><mo>)</mo></mrow><mo>,</mo><mi>C</mi><mrow><mo>(</mo><msubsup><mi>e</mi><mi>i</mi><mi>g</mi></msubsup><mo>,</mo><msub><mi>q</mi><mi>g</mi></msub><mo>)</mo></mrow><mo>,</mo><mi>C</mi><mrow><mo>(</mo><msubsup><mi>e</mi><mi>i</mi><mi>b</mi></msubsup><mo>,</mo><msub><mi>q</mi><mi>b</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow><mo>,</mo></mrow>利用此方法,依次得到n個(gè)m×m矩陣D1,…,Dn;步驟8、根據(jù)公式<mrow><mi>Ej</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><mi>min</mi><mo>{</mo><msubsup><mi>D</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mn>1</mn></mrow></msubsup><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><msubsup><mi>D</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mn>1</mn></mrow></msubsup><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow><mo>,</mo><msubsup><mi>D</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mn>1</mn></mrow></msubsup><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow><mo>}</mo><mo>,</mo><mi>j</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>n</mi><mo>,</mo><mi>i</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>m</mi><mo>,</mo></mrow><mrow><mi>Ej</mi><mrow><mo>(</mo><mn>1</mn><mo>,</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mi>min</mi><mo>{</mo><msubsup><mi>D</mi><mi>j</mi><mrow><mn>1</mn><mo>,</mo><mi>k</mi></mrow></msubsup><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><msubsup><mi>D</mi><mi>j</mi><mrow><mn>1</mn><mo>,</mo><mi>k</mi></mrow></msubsup><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow><mo>,</mo><msubsup><mi>D</mi><mi>j</mi><mrow><mn>1</mn><mo>,</mo><mi>k</mi></mrow></msubsup><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow><mo>}</mo><mo>,</mo><mi>j</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>n</mi><mo>,</mo><mi>k</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>m</mi><mo>,</mo></mrow><mrow><mi>Ej</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mi>max</mi><mo>{</mo><mi>min</mi><mo>{</mo><msubsup><mi>D</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mi>k</mi></mrow></msubsup><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><msubsup><mi>D</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mi>k</mi></mrow></msubsup><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow><mo>,</mo><msubsup><mi>D</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mi>k</mi></mrow></msubsup><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow><mo>}</mo><mo>,</mo><mi>min</mi><msubsup><mrow><mo>{</mo><mi>D</mi></mrow><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mi>k</mi></mrow></msubsup><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><msubsup><mi>D</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mi>k</mi></mrow></msubsup><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow><mo>,</mo><msubsup><mi>D</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mi>k</mi></mrow></msubsup><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow><mo>}</mo><mo>}</mo><mo>,</mo></mrow>i=2,3,…,m-1,k=2,3,…,m-1,j=1,2,…,n,<mrow><mi>Ej</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>m</mi><mo>)</mo></mrow><mo>=</mo><mi>min</mi><mo>{</mo><msubsup><mi>C</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mi>m</mi></mrow></msubsup><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><msubsup><mi>C</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mi>m</mi></mrow></msubsup><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow><mo>,</mo><msubsup><mi>C</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mi>m</mi></mrow></msubsup><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow><mo>}</mo><mo>,</mo><mi>j</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>n</mi><mo>,</mo><mi>i</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>m</mi><mo>,</mo></mrow><mrow><mi>Ej</mi><mrow><mo>(</mo><mi>m</mi><mo>,</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mi>min</mi><mo>{</mo><msubsup><mi>C</mi><mi>j</mi><mrow><mi>m</mi><mo>,</mo><mi>k</mi></mrow></msubsup><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><msubsup><mi>C</mi><mi>j</mi><mrow><mi>m</mi><mo>,</mo><mi>k</mi></mrow></msubsup><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow><mo>,</mo><msubsup><mi>C</mi><mi>j</mi><mrow><mi>m</mi><mo>,</mo><mi>k</mi></mrow></msubsup><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow><mo>}</mo><mo>,</mo><mi>j</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>n</mi><mo>,</mo><mi>k</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>m</mi><mo>,</mo></mrow>得到n個(gè)m×m矩陣E1,…,En;步驟9、構(gòu)造矩陣Hk,設(shè)元素Hk(i,j)是矩陣Hk的第i行第j列元素,k=1,2,…,n;Ek(i,j)是矩陣Ek的第i行第j列元素,k=1,2,…,n;那么Hk(1,j)=Ek(1,j),j=1,2…,m;Hk(i,1)=Ek(i,1),i=2,3,…,m;Hk(i,j)=max{Hk(i-1,j),Hk(i-1,j-1)+Ek(i,j),Hk(i,j-1)},i,j=2,3,…,m;由此可以得到矩陣n個(gè)矩陣H1,…,Hn;按照從上到下,從左到右的順序,i,j=2,3,…,m,如果Hk(i-1,j)=Hk(i-1,j-1)+Ek(i,j)>Hk(i,j-1)或Hk(i,j-1)=Hk(i-1,j-1)+Ek(i,j)>Hk(i-1,j)或Hk(i-1,j)=Hk(i,j-1)=Hk(i-1,j-1)+Ek(i,j),那么Hk(i,j)=Hk(i-1,j-1)+Ek(i,j);如果Hk(i-1,j)=Hk(i,j-1)>Hk(i-1,j-1)+Ek(i,j),那么Hk(i,j)=Hk(i,j-1);引入標(biāo)記Lk(i,j),Lk(1,j)=0,Lk(i,1)=0,i,j=1,2,…,m;如果Hk(i,j)的值通過公式Hk(i,j)=Hk(i-1,j-1)+Ek(i,j)得到,那么Lk(i,j)=1,i,j=2,3,…,m;;如果Hk(i,j)的值通過公式Hk(i,j)=Hk(i,j-1)得到,那么Lk(i,j)=2;如果Hk(i,j)的值通過公式Hk(i,j)=Hk(i-1,j)得到,那么Lk(i,j)=0,i,j=2,3,…,m;步驟10、設(shè)向量E’是由矩陣Z1中的某一列元素組成的,依次利用n個(gè)矩陣H1,…,Hn,從Lk(m,m)元素開始,在矩陣Z中像素點(diǎn)尋找與向量E’中像素點(diǎn)的匹配關(guān)系,具體方法如下如果Lk(m,m)=1,那么與像素點(diǎn)E’(m)匹配的像素點(diǎn)為Z(m,k),對(duì)Lk(m-1,m-1)繼續(xù)尋找與E’(m-1)匹配的像素點(diǎn);如果Lk(m,m)=2,那么矩陣Z中沒有與像素點(diǎn)E’(m)匹配的像素點(diǎn),對(duì)Lk(m,m-1)繼續(xù)尋找與E’(m)匹配的像素點(diǎn);如果Lk(m,m)=0,那么矩陣Z中沒有與像素點(diǎn)E’(m)匹配的像素點(diǎn),對(duì)Lk(m-1,m)繼續(xù)尋找與E’(m-1)匹配的像素點(diǎn);如此繼續(xù)下去;設(shè)需要對(duì)Lk(2,j)尋找與E’(2)的匹配點(diǎn),j≥2,如果Lk(2,j)=1,那么與像素點(diǎn)E’(2)匹配的像素點(diǎn)為Z(j,k)且與像素點(diǎn)E’(1)匹配的像素點(diǎn)為Z(j-1,k);如果Lk(2,j)=0或Lk(2,j)=2,那么沒有與像素點(diǎn)E’(2)匹配的像素點(diǎn),也沒有與像素點(diǎn)E’(1)匹配的像素點(diǎn);設(shè)需要對(duì)Lk(i,2)尋找與E’(i)的匹配點(diǎn),i≥2,如果Lk(i,2)=1,那么與像素點(diǎn)E’(i)匹配的像素點(diǎn)為Z(j,k)且與像素點(diǎn)E’(i-1)匹配的像素點(diǎn)為Z(1,k);如果Lk(i,2)=0或Lk(i,2)=2,那么沒有與像素點(diǎn)E’(i)匹配的像素點(diǎn),也沒有與像素點(diǎn)E’(i-1)匹配的像素點(diǎn);如果j=1或i=1,在矩陣Z中像素點(diǎn)尋找與向量E’中像素點(diǎn)的匹配關(guān)系結(jié)束;通過以上步驟得到調(diào)制后彩色結(jié)構(gòu)光編碼圖片中每條中心彩色條紋上的每個(gè)像素點(diǎn)與原始編碼圖像中的第幾條彩色條紋匹配,實(shí)現(xiàn)了一種基于動(dòng)態(tài)規(guī)劃的DeBruijn彩色結(jié)構(gòu)光解碼方法,為重構(gòu)算法作好了準(zhǔn)備。全文摘要本發(fā)明涉及一種基于動(dòng)態(tài)規(guī)劃的DeBruijn彩色結(jié)構(gòu)光解碼方法,屬于計(jì)算機(jī)圖像處理
技術(shù)領(lǐng)域:
。本發(fā)明針對(duì)基于DeBruijn序列的彩色結(jié)構(gòu)光編碼圖像,利用局部區(qū)域信息,采用動(dòng)態(tài)規(guī)劃方法解決調(diào)制后圖像中心彩色條紋上每個(gè)像素點(diǎn)與原始編碼圖像中彩色條紋的匹配問題,提高了解碼算法精度。本發(fā)明提供的方法不需要假定待測(cè)物體全表面單調(diào),對(duì)其連續(xù)性也不做嚴(yán)格要求,還能推廣到基于條紋列或條紋邊界列的解碼算法中。文檔編號(hào)G06T7/00GK101853515SQ20101017208公開日2010年10月6日申請(qǐng)日期2010年5月14日優(yōu)先權(quán)日2010年5月14日發(fā)明者丁瑩,姜會(huì)林,李明勛,楊華民,白寶興,范靜濤,韓成申請(qǐng)人:長(zhǎng)春理工大學(xué)