本發明涉及一種圖像拼接方法,尤其涉及對打印文件掃描放大圖像進行圖像拼接的方法。
背景技術:
在公共安全和法庭物證領域的文件檢驗工作中,需要把打印文件中的字符放大到50倍以上,對字符的細節進行觀察及分析。對于這一應用,目前是采用具有放大顯微功能的掃描攝像系統來實現的,這種系統能夠把打印文件中的內容攝入成一系列左右及上下相鄰的連續的放大圖像,并且存入計算機中。
這一系統的原理如圖1所示,是由CCD數碼攝像機1、放大顯微鏡頭2、LED光源3、移動平臺4、儀器支架5以及底座6組成。CCD數碼攝像機1是一種用CCD(電荷耦合器件,Charge Coupled Device)技術把外部物體拍攝成電子數碼圖像的設備。移動平臺4是一種固定在底座6上,能夠根據電子指令而上下左右移動的平板。移動平臺4放置在底座6上且移動平臺4上放置載物臺8,放大顯微鏡頭2和CCD數碼攝像機1連接在一起,面向移動平臺4,通過儀器支架5固定在底座6上并由調節螺旋鈕7控制。CCD數碼攝像機1和移動平臺4的數據和控制線都連接到計算機上。
把打印文件防止在移動平臺4上后,通過計算機控制的掃描攝像過程如下。
1、移動平臺沿X軸移動一個步長。從CCD攝像機角度看,打印文件從左到右移動了一個步長。
2、CCD攝像機攝入一幅圖像,并且輸入到計算機內。
3、重復步驟1和2,直到移動平臺在X軸上走完所規定的步長數(譬如10步)。這時CCD攝像機已經攝入了一組打印文件從左到右的圖像到計算機內。
4、移動平臺回到X軸的起點位置,再沿Y軸移動一個步長。從CCD攝像機角度看,打印文件從上到下移動了一個步長。
5、重復步驟1到4,讓CCD攝像機從上到下攝入多組打印文件從左到右的圖像,并且輸入到計算機內,直到移動平臺在X軸上走完所規定的步長數(譬如12步)。這時整個掃描攝像過程完成。
根據放大鏡頭的放大倍數,移動平臺在X軸和Y軸步長值可以預先設置在某個范圍內的一個值,使得每個圖像和它上下左右相鄰的圖像都有重疊區域,如圖2所示。所謂圖像拼接,就是通過掃描攝像系統獲取到攝入圖像以后,自動地、精確地在合理時間范圍內(數分鐘內)基于重疊區域拼接成一個完整的全局圖像。
然后,由于上述的掃描攝像系統是一種新型的系統,用于打印文件內容的放大及攝入,目前還沒有完全對應的技術方案對攝入圖像進行拼接,因此目前采用的方案是使用顯微放大鏡觀察檢驗文件的顯微圖像。
這種簡單的使用顯微放大鏡觀察檢驗文件具有如下缺點:
(1)顯微放大鏡的視野小,一次只能文件中字符比劃的一部分。文件檢查人員無法觀察放大字符的整體形態;
(2)文件檢查人員每次只能觀察文件中一個局部,無法對文件中的不同部位進行比較觀察。
此外,現有的圖像拼接技術都是針對全景照片的拼接,即攝像機放置在一個固定的位置上,變換角度攝入一組圖像。每個圖像和它上下左右相鄰的圖像都有部分內容重疊。現有的圖像拼接技術是以每張攝入圖像由顯著差別的圖形(譬如人物、房屋、樹木)作為前提,通過找出攝入圖像間的共同特征點,實現一個完整的全景照片的拼接。
然而,在對打印文件掃描放大圖像的拼接中,會遇到如下的難題。
第一,在大多數情況下,由于設備的機械誤差,CCD攝像機的矩形視野和移動平臺的X軸不是完全平行。這會使得相鄰圖像不會在X軸和Y軸方向上完全對齊,X軸重疊部分就會在Y軸方向有偏移,而Y軸重疊部分就會在X軸方向有偏移。如圖3所示,移動平臺的移動方向和CCD矩形視野不完全平行,造成相鄰圖像的偏移。
第二,某些左右或上下相鄰圖像的重疊部分全部是背景點或者只有少量的字符前景點,如圖4所示。
第三,在某些情況下,由于打印文件中的字符較小,所有上下(Y軸)相鄰的圖像的重疊部分全部是白色背景,沒有任何內容,如圖5所示。
這些問題都是現有的圖像拼接方法無法解決的。
技術實現要素:
以下給出一個或多個方面的簡要概述以提供對這些方面的基本理解。此概述不是所有構想到的方面的詳盡綜覽,并且既非旨在指認出所有方面的關鍵性或決定性要素亦非試圖界定任何或所有方面的范圍。其唯一的目的是要以簡化形式給出一個或多個方面的一些概念以為稍后給出的更加詳細的描述之序。
本發明的目的在于解決上述問題,提供了一種針對打印文件掃描放大圖像的拼接方法,通過發現攝入圖像間的最大重合度來實現拼接。
本發明的技術方案為:本發明揭示了一種針對打印文件掃描放大圖像的拼接方法,包括:
步驟1:對打印文件的攝入圖像進行二值化處理;
步驟2:計算X軸重疊值和Y軸偏移值;
步驟3:計算Y軸重疊值和X軸偏移值;
步驟4:取得全局的重疊值和偏移值;
步驟5:用全局的重疊值和偏移值做相應的偏移,進而拼接圖像。
根據本發明的針對打印文件掃描放大圖像的拼接方法的一實施例,在步驟2中,根據每組左右相鄰的攝入圖像的重疊內容,計算出所有X軸重疊值和Y軸偏移值。
根據本發明的針對打印文件掃描放大圖像的拼接方法的一實施例,在步驟3中,根據每組上下相鄰的攝圖圖像的重疊內容,計算出所有Y軸重疊值和X軸偏移值。
根據本發明的針對打印文件掃描放大圖像的拼接方法的一實施例,在步驟3中,當無法計算出任何Y軸重疊值和X軸偏移值時,在每兩行掃描之間增加一行 掃描,結合這些增加的掃描圖像,計算出所有的X軸重疊值、Y軸偏移值、Y軸重疊值、X軸偏移值。
根據本發明的針對打印文件掃描放大圖像的拼接方法的一實施例,在步驟2和步驟3中,如果重疊內容全部是背景點或者只有低于預設值的字符前景點,則放棄計算。
根據本發明的針對打印文件掃描放大圖像的拼接方法的一實施例,在步驟4中,對在步驟2和步驟3中得到的所有的X軸重疊值、Y軸偏移值、Y軸重疊值、X軸偏移值各自從小到大排序,取其中的中位值作為全局的重疊值和偏移值。
根據本發明的針對打印文件掃描放大圖像的拼接方法的一實施例,在步驟5中,在拼接過程中,首先每個攝入圖像根據全局的X軸重疊值覆蓋左邊相鄰圖像的重疊區域,并根據全局的Y軸偏移值向上或向下偏移,然后每個攝入圖像根據全局的Y軸重疊值覆蓋上邊相鄰圖像的重疊區域,并根據全局的X軸偏移值向左或向右偏移。
本發明對比現有技術有如下的有益效果:本發明中每張攝入圖像都是放大的字符,沒有顯著差別的圖形,是通過發現攝入圖像間的最大重合度來實現拼接。具體而言,首先根據每組左右相鄰的攝入圖像的重疊內容,計算出所有X軸重疊值以及Y軸偏移值,如果重疊內容全部是背景點或者只有少量的字符前景點則放棄計算;然后根據每組上下相鄰的攝入圖像的重疊內容,計算出所有Y軸重疊值以及X軸偏移值,如果重疊內容全部是背景點或者只有少量的字符前景點則放棄計算;接著在前兩個步驟中得到的所有的X軸重疊值、Y軸偏移值、Y軸重疊值以及X軸偏移值各自從小到大排序,取其中的中位值作為全局的重疊和偏移值;用這些全局的重疊及偏移值,去除相鄰圖像的重疊區域,同時做相應的偏移,把它們拼接到一起。相較于現有技術,本發明的拼接時間明顯縮短,拼接效果好,所有的拼接處吻合完好,最終拼接好的圖像如同一個整體,且拼接容錯能力強,即使設備的機械誤差使得CCD攝像機的矩形視野和移動平臺移動方向不平行,拼接也能夠在同樣時間內達到完好的效果,即使部分攝入圖像之間的重疊區域沒有或只有少量前景內容,拼接也能夠達到完好的效果。
附圖說明
圖1示出了具有高倍放大的掃描攝像系統的原理圖。
圖2示出了CCD攝入圖像相鄰之間有重疊區域的示意圖。
圖3示出了設備機械誤差造成相鄰圖像的偏移的示意圖。
圖4示出了相鄰圖像的重疊部分全部是背景點的示意圖。
圖5示出了上下相鄰的圖像的重疊部分全部是背景點的示意圖。
圖6示出了本發明的針對打印文件掃描放大圖像的拼接方法的較佳實施例的流程圖。
圖7示出了在兩行掃描之間再增加一行掃描攝像的示意圖。
圖8示出了左右相鄰圖像的重疊區域范圍以及重合度的計算的示意圖。
圖9示出了tcDX和重疊值toX及偏移值tdY的函數關系的示意圖。
圖10示出了快速搜索法的采樣搜索的示意圖。
圖11示出了上下相鄰圖像的重疊區域范圍的示意圖。
圖12示出了根據全局的重疊及偏移值拼接圖像的示意圖。
具體實施方式
在結合以下附圖閱讀本公開的實施例的詳細描述之后,能夠更好地理解本發明的上述特征和優點。在附圖中,各組件不一定是按比例繪制,并且具有類似的相關特性或特征的組件可能具有相同或相近的附圖標記。
圖6示出了本發明的針對打印文件掃描放大圖像的拼接方法的較佳實施例的流程。請參見圖6,下面是對本實施例的拼接方法的各個步驟的詳細描述。
步驟1:對打印文件的攝入圖像進行二值化處理。
CCD攝像機攝入的圖像是灰度級0到255的黑白圖像:0表示黑,255表示白,其它0到255之間的值表示介于黑與白之間的灰度。在這一步驟用現有的圖像處理技術把這些攝入圖像進行二值化處理:根據整個圖像所有點的灰度值分布情況,找到最佳的分界值,把介于0與255之間的值歸類成0或者255。二值化的目的是用來在下一步計算相鄰圖像的重疊部分的大小。
步驟2:計算X軸重疊值和Y軸偏移值。如果重疊內容全部是背景點或者只有少量的字符前景點則放棄計算。
掃描攝像系統的X軸掃描步長會被設定在某一個值,使得攝入圖像的右邊部分內容與它右鄰攝入圖像的左邊部分內容是重疊的,而且重疊部分的大小(X軸值)是在某個可知的范圍內。在本發明中用minX和maxX來表示這個范圍的最小值和最大值。
對于如圖3所示的,由機械誤差所造成的上下相鄰圖像的Y軸偏移,只要保證掃描攝像系統滿足預設的機械精度要求,這個偏移的范圍就不會超過某個可知的固定值。本發明中用skewY來表示這個固定值,那么可能的偏移范圍就在-skewY和+skewY之間。
針對每對左右相鄰的二值化圖像,圖8顯示了它們的重疊區域范圍以及用來衡量重疊區域相似度的重合度。
如圖8中的(a)部分所示,在本發明中用toX表示圖像之間可能的X軸重疊值,用tdY表示可能的Y軸偏移值。toX值將在minX和maxX范圍內;而tdY值將在-skewY和+skewY范圍內。
在本發明中用tcDX來表示圖像重疊區域的重合度。圖8中的(b)部分顯示了它的計算方法:對于兩幅圖像中的重疊部分,將所有相同位置點的灰度值(0或255)進行比較,值相同的點數占所有點數的百分比即為重合度。
重合度tcDX和toX以及tdY存在如圖9所示的函數關系。當toX和tdY是正確的重疊及偏移值時,也即為moX和mdY時,重合度tcDX達到最大;當它們和正確值差別越大時,重合度tcDX就越小。
因此,本發明還揭示了一種類似于二進制搜索法的快速搜索法進行采樣計算及搜索,而不是遍歷所有可能的toX和tdY值。針對圖9(c)中所示的toX和tdY二維平面上在(minX,minY)和(-skewY,+skewY)范圍內的點,此快速搜索法使用從大到小不同的步長進行采樣及搜索具有最大重合度的采樣點,直到步長為1;此時具有最大重合度的采樣點的值就是正確的X軸重疊值moX和Y軸偏移值mdY。此快速搜索法把計算時間縮短到只有原來的大約5%,極大地提高了這種拼接的實用價值。
在這一步驟中用快速搜索法進行采樣及搜索來得到正確的X軸重疊值moX和Y軸偏移值mdY。快速搜索法的算法如圖10所示。
1)用較大的步長值stepX1在minX到maxX范圍內選取采樣點作為toX。采樣點一共會有numX1=(maxX-minX)/stepX1個。
2)用較大的步長stepY1在-skewY到+skewY范圍內選取采樣點作為tdY。采樣點一共會有numY1=(skewY+skewY)/stepY1個。
3)在二維平面上就有numX1*numY1個采樣點。對每個采樣點的toX和tdY值,計算它們的重合度tcDX值。然后選取tcDX值最大的采樣點,用SPt_1來表示。
4)以原步長的1/6作為新的步長stepX2及stepY2,也就是stepX2=stepX1/6,stepY2=stepY1/6,圍繞SPt_1采樣點為toX和tdY選取新的采樣點。
5)在二維平面上就有5*5個新采樣點。對每個新采樣點的toX和tdY值,計算它們的重合度tcDX值,再選取tcDX值最大的采樣點(包括SPt_1采樣點),用SPt_2來表示。
6)對SPt_2,重復第4)和第5)步,得到SPt_3,再重復第4)和第5)步,直到X和Y軸上的步長收斂為0。這時重合度tCDX值最大的采樣點上的toX和tdY值就是正確的X軸重疊值moX和Y軸偏移值mdY。
步驟3:計算Y軸重疊值和X軸偏移值。如果重疊內容全部是背景點或者只有少量的字符前景點則放棄計算。
這一步驟計算每對上下相鄰的二值化圖像的Y軸重疊值及X軸偏移值。它的原理和方法和步驟2完全一樣,只是把計算左右相鄰的二值化圖像的重疊及偏移值變成計算上下相鄰的二值化圖像的重疊及偏移值。為了全面起見還是在此給出相應的說明。
掃描攝像系統的Y軸掃描步長會被設定在某一個值,使得攝入圖像的下邊部分內容與它下鄰攝入圖像的上邊部分內容是重疊的,而且重疊部分的大小(Y軸值)是在某個可知范圍內,在本文中用minY和maxY來表示這個范圍的最小與最大值。
對于如圖3所示,由機械誤差所造成的上下相鄰圖像的X軸偏移,只要保證掃描攝像系統滿足預設的機械精度要求,這個偏移的范圍就不會超過某個可知的 固定值。在本文中用skewX來表示這個固定值,那么可能的偏移范圍就在-skewX和+skewX之間。
如圖11所示,在本文中用toY表示圖像之間可能的Y軸重疊值,用tdX表示可能的X軸偏移值。toY值將在minY和maxY范圍內;而tdX值將在-skewX和+skewX范圍內。
在本文中用tcDY來表示圖像重疊區域的重合度,它的計算方法和步驟2中tcDX的計算方法相同。
和在步驟2中一樣,重合度tcDY和toY以及tdX值也存在如圖9所示的函數關系,只需用toY、tdX、minY、maxY、skewX代替toX、tdY、minX、maxX、skewY。
所以在這一步驟繼續用快速搜索法在二維平面上進行采樣及搜索,從而得到正確的Y軸重疊值moY和X軸偏移值mdX。具體算法和步驟2中圖10所示的一樣,只需用toY、tdX、minY、maxY、skewX代替toX、tdY、minX、maxX、skewY。
步驟4:取得全局的重疊值和偏移值。
把從步驟2及3中得到的所有moX、mdY、moY、mdX值各自從小到大排序,取其中的中位值作為全局的重疊及偏移值,分別用goX、gdY、goY、gdX來表示。
在圖5所示的情況下,無法計算出任何Y軸重疊值和X軸偏移值,為解決此問題,本發明可以在每兩行掃描之間增加一行掃描,如圖6所示,根據這些增加的掃描圖像,用同樣的方法計算出相鄰圖像的moX、mdY、moY、mdY值,和原先的那些值一起取得全局的重疊及偏移值(goX、gdY、goY、gdX)。這個辦法既解決了圖5所示的問題,同時也從更多的相鄰圖像的moX、mdY、moY、mdY值中取得全局的goX、gdY、goY、gdX,使得這些全局的重疊及偏移值更加精確。
步驟5:用全局的重疊值和偏移值做相應的偏移,進而拼接圖像。
把從CCD攝像機攝入的原始灰度級圖像按照全局的重疊值及偏移值(也即goX、gdY、goY、gdX)從左到右及從上到下拼接起來,就成為最終的拼接圖像。拼接方法如圖12所示:
1)每個圖像根據goX覆蓋它左邊相鄰圖像的重疊區域,并根據gdY值向上(如果值為負)或向下(如果值為正)偏移。
2)每個圖像根據goY覆蓋它上邊相鄰圖像的重疊區域,并根據gdX值向左(如果值為負)或向右(如果值為正)偏移。
至此,整個圖像的拼接已經完成。通過使用統一的X軸和Y軸重疊值,消除了圖4所示的問題,也就是相鄰圖像的重疊內容全部是背景點或者只有少量的字符前景點,而造成拼接不正確或根本無法拼接的問題。
本發明中的關鍵點在于:
1)CCD攝像機的矩形視野和移動平臺的移動軸不完全垂直的機械誤差會造成左右相鄰圖像有上下偏移,以及上下相鄰圖像有左右偏移。在拼接時考慮并計算這些偏移值,從而使此機械誤差不影響到拼接結果。
2)用增加中間掃描行的方法來取得額外的重疊及偏移值,以解決由于打印文件中字符較小而無法獲得重疊及偏移值的問題,并使得獲取的全局重疊及偏移值更加精確。
3)使用獨創的快速搜索法在二值化的相鄰圖像上計算并取得重疊及偏移值。
4)對于上下左右相鄰的攝入圖像,計算并使用全局的重疊及偏移值來拼接圖像。
盡管為使解釋簡單化將上述方法圖示并描述為一系列動作,但是應理解并領會,這些方法不受動作的次序所限,因為根據一個或多個實施例,一些動作可按不同次序發生和/或與來自本文中圖示和描述或本文中未圖示和描述但本領域技術人員可以理解的其他動作并發地發生。
本領域技術人員將進一步領會,結合本文中所公開的實施例來描述的各種解說性邏輯板塊、模塊、電路、和算法步驟可實現為電子硬件、計算機軟件、或這兩者的組合。為清楚地解說硬件與軟件的這一可互換性,各種解說性組件、框、模塊、電路、和步驟在上面是以其功能性的形式作一般化描述的。此類功能性是被實現為硬件還是軟件取決于具體應用和施加于整體系統的設計約束。技術人員對于每種特定應用可用不同的方式來實現所描述的功能性,但這樣的實現決策不應被解讀成導致脫離了本發明的范圍。
結合本文所公開的實施例描述的各種解說性邏輯板塊、模塊、和電路可用通用處理器、數字信號處理器(DSP)、專用集成電路(ASIC)、現場可編程門陣列(FPGA)或其它可編程邏輯器件、分立的門或晶體管邏輯、分立的硬件組件、或其設計成執行本文所描述功能的任何組合來實現或執行。通用處理器可以是微處理器,但在替換方案中,該處理器可以是任何常規的處理器、控制器、微控制器、或狀態機。處理器還可以被實現為計算設備的組合,例如DSP與微處理器的組合、多個微處理器、與DSP核心協作的一個或多個微處理器、或任何其他此類配置。
結合本文中公開的實施例描述的方法或算法的步驟可直接在硬件中、在由處理器執行的軟件模塊中、或在這兩者的組合中體現。軟件模塊可駐留在RAM存儲器、閃存、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬盤、可移動盤、CD-ROM、或本領域中所知的任何其他形式的存儲介質中。示例性存儲介質耦合到處理器以使得該處理器能從/向該存儲介質讀取和寫入信息。在替換方案中,存儲介質可以被整合到處理器。處理器和存儲介質可駐留在ASIC中。ASIC可駐留在用戶終端中。在替換方案中,處理器和存儲介質可作為分立組件駐留在用戶終端中。
在一個或多個示例性實施例中,所描述的功能可在硬件、軟件、固件或其任何組合中實現。如果在軟件中實現為計算機程序產品,則各功能可以作為一條或更多條指令或代碼存儲在計算機可讀介質上或藉其進行傳送。計算機可讀介質包括計算機存儲介質和通信介質兩者,其包括促成計算機程序從一地向另一地轉移的任何介質。存儲介質可以是能被計算機訪問的任何可用介質。作為示例而非限定,這樣的計算機可讀介質可包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲、磁盤存儲或其它磁存儲設備、或能被用來攜帶或存儲指令或數據結構形式的合意程序代碼且能被計算機訪問的任何其它介質。任何連接也被正當地稱為計算機可讀介質。例如,如果軟件是使用同軸電纜、光纖電纜、雙絞線、數字訂戶線(DSL)、或諸如紅外、無線電、以及微波之類的無線技術從web網站、服務器、或其它遠程源傳送而來,則該同軸電纜、光纖電纜、雙絞線、DSL、或諸如紅外、無線電、以及微波之類的無線技術就被包括在介質的定義之中。如本文中所使用的盤(disk)和碟(disc)包括壓縮碟(CD)、激光碟、光碟、數字多用碟 (DVD)、軟盤和藍光碟,其中盤(disk)往往以磁的方式再現數據,而碟(disc)用激光以光學方式再現數據。上述的組合也應被包括在計算機可讀介質的范圍內。
提供對本公開的先前描述是為使得本領域任何技術人員皆能夠制作或使用本公開。對本公開的各種修改對本領域技術人員來說都將是顯而易見的,且本文中所定義的普適原理可被應用到其他變體而不會脫離本公開的精神或范圍。由此,本公開并非旨在被限定于本文中所描述的示例和設計,而是應被授予與本文中所公開的原理和新穎性特征相一致的最廣范圍。