本發明涉及三維圖像重建技術領域,尤其涉及一種基于debruijn序列的三維圖像重建方法及裝置。
背景技術:
現有技術中,常用的三維圖像重建技術是結構光三維圖像重建技術,結構光三維圖像重建技術主要分為兩類:空域編碼和時域編碼,其中,空域編碼往往只需要投影一幅圖案,圖案中每一點的碼字即可根據它周圍臨近點的信息(如像素、顏色和幾何信息等)得出,但是在解碼階段因受到像素和顏色等信息的干擾,具有噪聲干擾,從而影響解碼魯棒性。
因此,現有的三維圖像重建方法存在著具有較差的抗噪能力和較差的魯棒性。
技術實現要素:
本發明的主要目的在于提供一種基于debruijn序列的三維圖像重建方法及裝置,旨在解決現有的三維圖像重建方法存在的具有較差的抗噪能力和較差的魯棒性的技術問題。
為實現上述目的,本發明第一方面提供一種基于debruijn序列的三維圖像重建方法,所述方法包括:
利用位移寄存器生成4元2級debruijn序列;
對所述debruijn序列進行二進制轉換處理得到二進制序列,并將所述二進制序列按順序依次填充于預設模板圖像中的灰色區域中,得到編碼模板圖像;
將所述編碼模板圖像投影到物體表面后進行圖像采集,得到包含編碼模板圖像信息和物體信息的編碼圖像,對所述編碼圖像進行二值化處理,得到第一二值化圖像,其中,所述第一二值化圖像包括若干編碼特征點,每一個編碼特征點包括一個中心區域;
基于所述第一二值化圖像確定每一個編碼特征點的中心區域的位置信息;
基于所述第一二值化圖像及所述每一個中心區域的位置信息確定所述每一個編碼特征點的編碼值,并利用所述編碼值進行三維圖像重建。
為實現上述目的,本發明第二方面提供一種基于debruijn序列的三維圖像重建裝置,所述裝置包括:
生成模塊,用于利用位移寄存器生成4元2級debruijn序列;
轉換模塊,用于對所述debruijn序列進行二進制轉換處理得到二進制序列,并將所述二進制序列按順序依次填充于預設模板圖像中的灰色區域中,得到編碼模板圖像;
采集模塊,用于將所述編碼模板圖像投影到物體表面后進行圖像采集,得到包含編碼模板圖像信息和物體信息的編碼圖像,對所述編碼圖像進行二值化處理,得到第一二值化圖像,其中,所述第一二值化圖像包括若干編碼特征點,每一個編碼特征點包括一個中心區域;
第一確定模塊,用于基于所述第一二值化圖像確定每一個編碼特征點的中心區域的位置信息;
第二確定模塊,用于基于所述第一二值化圖像及所述每一個中心區域的位置信息確定所述每一個編碼特征點的編碼值,并利用所述編碼值進行三維圖像重建。
本發明提供一種基于debruijn序列的三維圖像重建方法,本發明實施例利用位移寄存器生成4元2級debruijn序列,對debruijn序列進行二進制轉換處理得到二進制序列,并將二進制序列按順序依次填充于預設模板圖像中的灰色區域中,得到編碼模板圖像,將編碼模板圖像投影到物體表面后進行圖像采集,得到包含編碼模板圖像信息和物體信息的編碼圖像,對編碼圖像進行二值化處理,得到第一二值化圖像,其中,第一二值化圖像包括若干編碼特征點,每一個編碼特征點包括一個中心區域,基于第一二值化圖像確定每一個編碼特征點的中心區域的位置信息,基于第一二值化圖像及每一個中心區域的位置信息確定每一個編碼特征點的編碼值,并利用編碼值進行三維圖像重建,與現有技術相比,本發明實施例將基于debruijn序列進行編碼后得到的編碼模板圖像投影到物體表面后進行圖像采集,得到編碼圖像,對編碼圖像進行二值化處理,其中,利用二值化處理可以克服物體表面的顏色干擾,三維圖像的重建時具有更高的抗噪能力和較好的魯棒性。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明第一實施例提供的一種基于debruijn序列的三維圖像重建方法的流程示意圖;
圖2為本發明實施例中的預設模板圖像;
圖3為為圖1中的步驟s102中的對debruijn序列進行二進制轉換處理得到二進制序列的細化步驟的流程示意圖;
圖4為對debruijn序列進行二進制轉換處理得到二進制序列的轉換處理示意圖;
圖5為第一二值化圖像;
圖6為步驟s104的細化步驟的流程示意圖;
圖7為外圍區域的結構圖;
圖8為步驟s105的細化步驟的流程示意圖;
圖9為編碼特征點的結構圖;
圖10為本發明第二實施例提供的一種基于debruijn序列的三維圖像重建裝置的功能模塊示意圖;
圖11為圖10中的轉換模塊1002的細化功能模塊示意圖;
圖12為第一確定模塊1004的細化功能模塊示意圖;
圖13為第二確定模塊1005的細化功能模塊示意圖。
具體實施方式
為使得本發明的發明目的、特征、優點能夠更加的明顯和易懂,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而非全部實施例。基于本發明中的實施例,本領域技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
為了說明本發明所述的技術方案,下面通過具體實施例來進行說明。
請參閱圖1,圖1為本發明第一實施例提供的一種基于debruijn序列的三維圖像重建方法的流程示意圖,包括:
步驟s101、利用位移寄存器生成4元2級debruijn序列;
在本發明實施例中,利用位移寄存器生成生成4元2級debruijn序列,生成debruijn序列的方法為:首先利用位移寄存器確定第一個子序列,利用原本多項式獲取迭代函數,并利用迭代函數進行迭代運算,生成后續子序列,在當前的子序列與第一個子序列相同時迭代結束,得到4元2級debruijn序列。
其中,該4元2級debruijn序列是一個元素個數為4、總長度為16、任意長度、子序列不重復出現的偽隨機序列,該4元2級debruijn序列元素取值為0、1、2和3。
步驟s102、對debruijn序列進行二進制轉換處理得到二進制序列,并將二進制序列按順序依次填充于預設模板圖像中的灰色區域中,得到編碼模板圖像;
在本發明實施例中,請參閱圖2所示的預設模板圖像,該預設模板圖像為黑白相間的棋盤格圖案,并以每個角點為中心設置待填充的灰色區域203,灰色區域203的面積應小于黑色棋盤格區域202的面積及白色棋盤格區域201的面積。
其中,將二進制序列按順序依次填充于預設模板圖像中的灰色區域中,得到編碼模板圖像,例如,圖2所示的預設模板圖像中共有7行待填充的灰色區域203,每一行有7個格子的灰色區域203,假設第一行二進制序列為1100110,將第一行二進制序列1100110按順序依次填充于預設模板圖像中的第一行待填充的7個灰色區域203中,二進制序列1100110中的碼字1使得灰色區域203變成黑色的,二進制序列1100110中的碼字0使得灰色區域203變成白色的,則第一行填充后的7個灰色區域203的顏色顯示為黑黑白白黑黑白,按照上述方法,將所有的二進制序列按照順序依次填充于預設模板圖像中,就會得到編碼模板圖像。
進一步的,請參閱圖3,圖3為圖1中的步驟s102中的對debruijn序列進行二進制轉換處理得到二進制序列的細化步驟的流程示意圖,包括:
步驟s301、將debruijn序列中的每一個碼字轉換成上下分布的二進制數,并排列成上下兩行;
步驟s302、將排列成上下兩行的所有二進制數中的偶數列的二進制數進行上下位置換,得到二進制序列。
在本發明實施例中,請參閱圖4,圖4為對debruijn序列進行二進制轉換處理得到二進制序列的轉換處理示意圖,該4元2級debruijn序列元素取值為0、1、2及3,對應的二進制數分別為00、01、10及11,假設某一行debruijn序列401為3300311320210122,則將該行debruijn序列401中的每一個碼字轉換成上下分布的二進制數,并排列成上下兩行,如402所示,將排列成上下兩行的所有二進制數中的偶數列的二進制數進行上下位置換,得到如403所示的二進制序列。
步驟s103、將編碼模板圖像投影到物體表面后進行圖像采集,得到包含編碼模板圖像信息和物體信息的編碼圖像,對編碼圖像進行二值化處理,得到第一二值化圖像,其中,第一二值化圖像包括若干編碼特征點,每一個編碼特征點包括一個中心區域;
在本發明實施例中,請參閱圖5,為第一二值化圖像,第一二值化圖像包括若干編碼特征點,每一個編碼特征點包括一個中心區域,有的編碼特征點包括的中心區域的顏色為黑色,如501,有的編碼特征點包括的中心區域的顏色為白色,如502。
步驟s104、基于第一二值化圖像確定每一個編碼特征點的中心區域的位置信息;
進一步地,請參閱圖6,圖6為步驟s104的細化步驟的流程示意圖,包括:
步驟s601、對第一二值化圖像進行閉運算,并去除每一個編碼特征點的外圍區域,得到第二二值化圖像;
步驟s602、確定第二二值化圖像中的顏色為黑色的中心區域的位置信息;
步驟s603、將第一二值化圖像中的每一個像素進行黑白反轉處理,并對進行黑白反轉處理后的第一二值化圖像進行閉運算,去除每一個編碼特征點的外圍區域,得到第三二值化圖像;
步驟s604、確定第三二值化圖像中的顏色為黑色的中心區域的位置信息。
在本發明實施例中,每一個編碼特征點包括4個外圍區域,請參閱圖7,4個外圍區域分別為701、702、703及704,對第一二值化圖像進行閉運算,并去除每一個編碼特征點的外圍區域,得到第二二值化圖像,確定第二二值化圖像中的顏色為黑色的中心區域的位置信息,因為只能對顏色為黑色的中心區域進行閉運算,所以為了確定第一二值化圖像中的顏色為白色的中心區域的位置信息,首先將第一二值化圖像中的每一個像素進行黑白反轉處理,并對進行黑白反轉處理后的第一二值化圖像進行閉運算,去除每一個編碼特征點的外圍區域,得到第三二值化圖像,確定第三二值化圖像中的顏色為黑色的中心區域的位置信息,第三二值化圖像中的顏色為黑色的中心區域的位置信息即為第一二值化圖像中的顏色為白色的中心區域的位置信息,從而確定了第一二值化圖像中的所有中心區域的位置信息。
步驟s105、基于第一二值化圖像及每一個中心區域的位置信息確定每一個編碼特征點的編碼值,并利用編碼值進行三維圖像重建。
進一步地,請參閱圖8,圖8為步驟s105的細化步驟的流程示意圖,包括:
步驟s801、基于第一二值化圖像及當前中心區域的位置信息確定與當前中心區域的顏色相同的4個鄰近中心區域;
步驟s802、連接當前中心區域及4個鄰近中心區域,得到連線上的4個外圍區域;
步驟s803、計算4個外圍區域的灰度值,將4個外圍區域的灰度值作為當前中心區域所對應的編碼特征點的編碼值。
在本發明實施例中,請參閱圖9,當前中心區域為901,基于第一二值化圖像及當前中心區域901的位置信息確定與當前中心區域的顏色相同的4個鄰近中心區域分別為902、903、904及905,連接當前中心區域及4個鄰近中心區域,得到連線上的4個外圍區域,4個外圍區域為906、907、908及909,計算4個外圍區域的灰度值,如圖9中,906的顏色為黑色,則906的灰度值為1,907的顏色為白色,則907的灰度值為0,908的顏色為白色,則908的灰度值為0,909的顏色為白色,則909的灰度值為0,將4個外圍區域的灰度值1、0、0、0作為當前中心區域所對應的編碼特征點的編碼值,即當前中心區域所對應的編碼特征點的編碼值為1、0、0、0。
在本發明實施例中,與現有技術相比,本發明實施例基于debruijn序列進行編碼,能夠有效的避免編碼的奇異性,將編碼后得到的編碼模板圖像投影到物體表面后進行圖像采集,得到編碼圖像,對編碼圖像進行二值化處理,其中,利用二值化處理可以克服物體表面的顏色干擾,三維圖像的重建時具有更高的抗噪能力和較好的魯棒性。
請參閱圖10,圖10為本發明第二實施例提供的一種基于debruijn序列的三維圖像重建裝置的功能模塊示意圖,包括:
生成模塊1001,用于利用位移寄存器生成4元2級debruijn序列;
在本發明實施例中,生成模塊1001利用位移寄存器生成生成4元2級debruijn序列,生成debruijn序列的方法為:首先利用位移寄存器確定第一個子序列,利用原本多項式獲取迭代函數,并利用迭代函數進行迭代運算,生成后續子序列,在當前的子序列與第一個子序列相同時迭代結束,得到4元2級debruijn序列。
其中,該4元2級debruijn序列是一個元素個數為4、總長度為16、任意長度、子序列不重復出現的偽隨機序列,該4元2級debruijn序列元素取值為0、1、2和3。
轉換模塊1002,用于對debruijn序列進行二進制轉換處理得到二進制序列,并將二進制序列按順序依次填充于預設模板圖像中的灰色區域中,得到編碼模板圖像;
在本發明實施例中,請參閱圖2所示的預設模板圖像,該預設模板圖像為黑白相間的棋盤格圖案,并以每個角點為中心設置待填充的灰色區域203,灰色區域203的面積應小于黑色棋盤格區域202的面積及白色棋盤格區域201的面積。
其中,轉換模塊1002將二進制序列按順序依次填充于預設模板圖像中的灰色區域中,得到編碼模板圖像,例如,圖2所示的預設模板圖像中共有7行待填充的灰色區域203,每一行有7個格子的灰色區域203,假設第一行二進制序列為1100110,將第一行二進制序列1100110按順序依次填充于預設模板圖像中的第一行待填充的7個灰色區域203中,二進制序列1100110中的碼字1使得灰色區域203變成黑色的,二進制序列1100110中的碼字0使得灰色區域203變成白色的,則第一行填充后的7個灰色區域203的顏色顯示為黑黑白白黑黑白,按照上述方法,將所有的二進制序列按照順序依次填充于預設模板圖像中,就會得到編碼模板圖像。
進一步的,請參閱圖11,圖11為圖10中的轉換模塊1002的細化功能模塊示意圖,包括:
轉換單元1101,用于將debruijn序列中的每一個碼字轉換成上下分布的二進制數,并排列成上下兩行;
置換單元1102,用于將排列成上下兩行的所有二進制數中的偶數列的二進制數進行上下位置換,得到二進制序列。
在本發明實施例中,請參閱圖4,圖4為對debruijn序列進行二進制轉換處理得到二進制序列的轉換處理示意圖,該4元2級debruijn序列元素取值為0、1、2及3,對應的二進制數分別為00、01、10及11,假設某一行debruijn序列401為3300311320210122,轉換單元1101則將該行debruijn序列401中的每一個碼字轉換成上下分布的二進制數,并排列成上下兩行,如402所示,置換單元1102將排列成上下兩行的所有二進制數中的偶數列的二進制數進行上下位置換,得到如403所示的二進制序列。
采集模塊1003,用于將編碼模板圖像投影到物體表面后進行圖像采集,得到包含編碼模板圖像信息和物體信息的編碼圖像,對編碼圖像進行二值化處理,得到第一二值化圖像,其中,第一二值化圖像包括若干編碼特征點,每一個編碼特征點包括一個中心區域;
在本發明實施例中,請參閱圖5,為第一二值化圖像,第一二值化圖像包括若干編碼特征點,每一個編碼特征點包括一個中心區域,有的編碼特征點包括的中心區域的顏色為黑色,如501,有的編碼特征點包括的中心區域的顏色為白色,如502。
第一確定模塊1004,用于基于第一二值化圖像確定每一個編碼特征點的中心區域的位置信息;
進一步地,請參閱圖12,圖12為第一確定模塊1004的細化功能模塊示意圖,包括:
第一閉運算單元1201,用于對第一二值化圖像進行閉運算,并去除每一個編碼特征點的外圍區域,得到第二二值化圖像;
第一確定單元1202,用于確定第二二值化圖像中的顏色為黑色的中心區域的位置信息;
第二閉運算單元1203,用于將第一二值化圖像中的每一個像素進行黑白反轉處理,并對進行黑白反轉處理后的第一二值化圖像進行閉運算,去除每一個編碼特征點的外圍區域,得到第三二值化圖像;
第二確定單元1204,用于確定第三二值化圖像中的顏色為黑色的中心區域的位置信息。
在本發明實施例中,每一個編碼特征點包括4個外圍區域,請參閱圖7,4個外圍區域分別為701、702、703及704,第一閉運算單元1201對第一二值化圖像進行閉運算,并去除每一個編碼特征點的外圍區域,得到第二二值化圖像,第一確定單元1202確定第二二值化圖像中的顏色為黑色的中心區域的位置信息,因為只能對顏色為黑色的中心區域進行閉運算,所以為了確定第一二值化圖像中的顏色為白色的中心區域的位置信息,第二閉運算單元1203首先將第一二值化圖像中的每一個像素進行黑白反轉處理,并對進行黑白反轉處理后的第一二值化圖像進行閉運算,第二閉運算單元1203去除每一個編碼特征點的外圍區域,得到第三二值化圖像,確定第三二值化圖像中的顏色為黑色的中心區域的位置信息,第三二值化圖像中的顏色為黑色的中心區域的位置信息即為第一二值化圖像中的顏色為白色的中心區域的位置信息,第二確定單元1204從而確定了第一二值化圖像中的所有中心區域的位置信息。
第二確定模塊1005,用于基于第一二值化圖像及每一個中心區域的位置信息確定每一個編碼特征點的編碼值,并利用編碼值進行三維圖像重建。
進一步地,請參閱圖13,圖13為第二確定模塊1005的細化功能模塊示意圖,包括:
第三確定單元1301,用于基于第一二值化圖像及當前中心區域的位置信息確定與當前中心區域的顏色相同的4個鄰近中心區域;
連接單元1302,用于連接當前中心區域及4個鄰近中心區域,得到連線上的4個外圍區域;
計算單元1303,用于計算4個外圍區域的灰度值,將4個外圍區域的灰度值作為當前中心區域所對應的編碼特征點的編碼值。
在本發明實施例中,請參閱圖9,當前中心區域為901,第三確定單元1301基于第一二值化圖像及當前中心區域901的位置信息確定與當前中心區域的顏色相同的4個鄰近中心區域分別為902、903、904及905,連接單元1302連接當前中心區域及4個鄰近中心區域,得到連線上的4個外圍區域,4個外圍區域為906、907、908及909,計算單元1303計算4個外圍區域的灰度值,如圖9中,906的顏色為黑色,則906的灰度值為1,907的顏色為白色,則907的灰度值為0,908的顏色為白色,則908的灰度值為0,909的顏色為白色,則909的灰度值為0,將4個外圍區域的灰度值1、0、0、0作為當前中心區域所對應的編碼特征點的編碼值,即當前中心區域所對應的編碼特征點的編碼值為1、0、0、0。
在本發明實施例中,與現有技術相比,本發明實施例基于debruijn序列進行編碼,能夠有效的避免編碼的奇異性,將編碼后得到的編碼模板圖像投影到物體表面后進行圖像采集,得到編碼圖像,對編碼圖像進行二值化處理,其中,利用二值化處理可以克服物體表面的顏色干擾,三維圖像的重建時具有更高的抗噪能力和較好的魯棒性。
在本申請所提供的幾個實施例中,應該理解到,所揭露的裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個模塊或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或模塊的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件可以是或者也可以不是物理模塊,即可以位于一個地方,或者也可以分布到多個網絡模塊上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能模塊可以集成在一個處理模塊中,也可以是各個模塊單獨物理存在,也可以兩個或兩個以上模塊集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現,也可以采用軟件功能模塊的形式實現。
所述集成的模塊如果以軟件功能模塊的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
需要說明的是,對于前述的各方法實施例,為了簡便描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發明并不受所描述的動作順序的限制,因為依據本發明,某些步驟可以采用其它順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優選實施例,所涉及的動作和模塊并不一定都是本發明所必須的。
在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其它實施例的相關描述。
以上為對本發明所提供的一種基于debruijn序列的三維圖像重建方法及裝置的描述,對于本領域的技術人員,依據本發明實施例的思想,在具體實施方式及應用范圍上均會有改變之處,綜上,本說明書內容不應理解為對本發明的限制。