本發(fā)明屬于圖像處理、立體視覺技術(shù)領(lǐng)域,具體講本發(fā)明涉及一種用于重定向的立體圖像匹配圖計算方法。
背景技術(shù):
與平面圖像相比,立體圖像具有的深度信息能夠?yàn)橹囟ㄏ驇碛袃r值的線索。然而,該信息的保存也為立體圖像重定向帶來了新的挑戰(zhàn)。立體圖像重定向不僅要減小視覺失真,還要減小視差失真。視差值的改變會影響圖像的立體感知,甚至使得立體效果完全消失。將平面圖像重定向算法直接應(yīng)用到立體圖像時,由于忽視了立體圖像中像素之間的視差關(guān)系,會帶來嚴(yán)重的視差失真。為了減少視差失真,立體圖像重定向過程中需要注意保持像素之間匹配關(guān)系。
現(xiàn)存的方法一般用視差關(guān)系來找到匹配像素。首先計算出左視圖和右視圖的視差圖,再根據(jù)視差關(guān)系,左視圖中的像素點(diǎn)找到其在右視圖中的匹配點(diǎn)。比如離散的重定向方法中,立體線裁剪的方法就是通過去除掉左右視圖中相匹配的像素來對立體圖像進(jìn)行重定向處理。該方法中,先計算出左視圖中的裁減線,再根據(jù)視差圖,找到右視圖中相匹配的裁減線。由于該方法沒有考慮到空間相關(guān)性,當(dāng)需要裁剪的線較多時,會出現(xiàn)很嚴(yán)重的失真。連續(xù)的重定向方法,比如網(wǎng)格變換方法,通過調(diào)整網(wǎng)格頂點(diǎn)的坐標(biāo)來對圖像進(jìn)行重定向處理。這種方法中,左視圖中網(wǎng)格頂點(diǎn)或者是特征點(diǎn)根據(jù)視差關(guān)系找到其在右視圖中的匹配點(diǎn),再對這些匹配點(diǎn)做相對應(yīng)的處理,得到最終的立體圖像重定向結(jié)果。由于只對一些稀疏的點(diǎn)進(jìn)行匹配處理,其他未匹配點(diǎn)的變化很可能會造成嚴(yán)重的視差失真。這些方法都是先對左視圖中的像素進(jìn)行處理,再通過視差圖來找到其在右視圖的匹配像素點(diǎn),再做相應(yīng)的處理,來保存視差關(guān)系,減小失真。由于計算錯誤或者是遮擋點(diǎn)的原因,有一些右視圖中的點(diǎn)無法與左視圖中的點(diǎn)相匹配。上述方法中,不需要對所有的像素進(jìn)行處理,所以只找出那些能夠較好匹配地點(diǎn)進(jìn)行處理。但是如果遇到需要對所有像素進(jìn)行匹配處理的情況,直接利用視差圖進(jìn)行匹配會造成嚴(yán)重的失真。
基于像素融合的圖像重定向方法需要計算每一個像素的縮放因子來得到最終的重定向圖像。如果立體圖像的視差關(guān)系計算錯誤或遇到遮擋點(diǎn),左視圖中的像素不能夠與右視圖中的像素進(jìn)行一對一匹配,這就導(dǎo)致右視圖中有些點(diǎn)不能夠得到匹配信息。為了給右視圖中所有的點(diǎn)找到相匹配的點(diǎn),可以根據(jù)右視圖的視差圖來找到左視圖中與右視圖中的像素相匹配的點(diǎn)。但是這種方法還是會出現(xiàn)多對一的情況,造成失真,也不能保存空間相關(guān)性。
技術(shù)實(shí)現(xiàn)要素:
為克服現(xiàn)有技術(shù)的不足,針對單純的利用視差關(guān)系來對左右視圖中的像素進(jìn)行匹配,有時會產(chǎn)生多個像素有相同的匹配點(diǎn)的情況,本發(fā)明旨在提出一種立體圖像匹配圖計算方法,為立體圖像重定向帶來較好的像素匹配結(jié)果。本發(fā)明采用的技術(shù)方案是,立體圖像匹配圖計算方法,步驟如下:
1.能量方程的建立
選擇線匹配對來表示立體圖像對之間的像素關(guān)系:首先,在線匹配像素之前進(jìn)行線選擇,建立能量方程來對線選擇進(jìn)行模型化處理,該能量方程同時考慮了線的選擇特性和匹配特性,定義如下:
Etotal(i,j,j±)=α·Eselect(i,j,j±)+(1-α)·Ematch(i,j),
其中i代表像素的橫坐標(biāo),j代表像素的縱坐標(biāo),j±代表第i-1行被選擇的像素的縱坐標(biāo)。使用廣義上的線,也就是說,i-1行中被選擇的像素可以是該行任意一個像素,而不像連續(xù)的線那樣,i-1行中被選擇的像素必須是第i行被選擇像素的相鄰像素,也就是說j±∈{j-1,j,j+1}。α是一個權(quán)衡因子,表示線選擇特性和線匹配特性的重要性,Eselect為線選擇特性的能量方程,Ematch為線匹配的能量方程;
2.基于動態(tài)規(guī)劃的線選擇
建立了能量方程之后,根據(jù)該能量方程建立代價矩陣M,并采用動態(tài)規(guī)劃方法進(jìn)行線選擇;由于被遮擋的像素沒有匹配像素點(diǎn),不能被選擇,因此將這些點(diǎn)的代價值設(shè)為無窮M(i,j)=∞,該約束能夠避免被遮擋像素被選擇,所以代價矩陣如下:
O(i,j)是一個二值圖,代表坐標(biāo)為(i,j)的像素是否被遮擋;
被選擇的線將會從代價矩陣M中移除以免重復(fù)選擇,然后重新計算代價矩陣M來選擇出下一條線,該動態(tài)規(guī)劃過程將會重復(fù)直到某一行中剩下的像素全部為不能被選擇的被遮擋點(diǎn)為止;
3.匹配圖的建立
線選擇之后,按照選擇的順序,進(jìn)行線匹配。首先,線中的像素根據(jù)視差關(guān)系尋找匹配像素得到匹配線對。然后,線匹配對被暫時移除,以避免重復(fù)匹配。接著尋找下一個線匹配對。這個過程將會持續(xù)直到每一條線都有一個匹配線;
線匹配之后,每一個線對會被分配一個ID,ID代表線匹配的順序,其值是從1到n。n是線選擇的數(shù)目,在圖像對中,除了那些被選擇的像素,剩下的被遮擋像素也會分配一個ID值,從左到右,這些像素將會按順序的分配一個ID,ID值從n+1到W,W是原圖像的寬度,通過這種方法,每一行中的每一個像素都會有一個ID值,而且右視圖中的匹配像素也會有相同的ID值,而且,被遮擋點(diǎn)在右視圖中也會有一個匹配像素,根據(jù)ID值,所有的像素被匹配而且獲得了匹配圖;
4.基于匹配圖的匹配關(guān)系建立
建立好匹配圖之后,用匹配圖將左右視圖的像素進(jìn)行匹配,左右視圖中,ID值相同的像素就是相匹配的像素,將匹配像素做相同的處理,能夠保存左右視圖的一致性。
所建立的匹配圖是以線為單位的;結(jié)合像素之間紋理相似性和視差相似性,能夠增加匹配的準(zhǔn)確性;建立的匹配圖是滿射圖,能夠?qū)⒆笥乙晥D像素進(jìn)行一對一匹配。
其中,1)線選擇特性的能量方程
同一條線上的相鄰像素應(yīng)該相似,而且線周圍的像素應(yīng)該有相似的紋理特征和深度值??紤]到這個情況,線選擇能量方程Eselect由和這兩部分組成:
代表像素之間的紋理相似度;代表像素之間的深度相似度,能量方程的定義如下:
代表同一條線上像素之間的相似性,是線周圍像素之間的相似性,的定義如下:
T(i,j)代表左視圖中坐標(biāo)為(i,j)的像素的紋理特征值。線周圍像素的坐標(biāo)是由第i-1行被選擇的像素坐標(biāo)決定的,分為三種情況,的定義如下:
其中
W=|T(i,j-1)-T(i,j+1)|,
表示像素之間視差相似性的能量方程的定義和相似,只是將紋理特征換成視差特征。
2)線匹配的能量方程
用匹配能量方程來計算像素匹配的正確性,該能量方程由兩部分組成:
Ematch(i,j)=Ediff(i,j)+Ecorrect(i,j).
Ediff代表匹配像素之間的紋理差異,定義如下:
其中D(i,j)代表坐標(biāo)位置為(i,j)的像素的視差值,代表右視圖坐標(biāo)位置為(i,j+D(i,j))的像素的紋理特征值。用下面方程計算相匹配像素之間的視差失真:
代表右視圖坐標(biāo)位置為(i,j+D(i,j))的像素的視差值。
本發(fā)明的特點(diǎn)及有益效果是:
本發(fā)明建立了一種匹配圖來代替原有的視差匹配關(guān)系,獲得所有像素之間的一對一匹配關(guān)系圖。該像素匹配是基于線的匹配,能夠增加空間相關(guān)性,將該匹配關(guān)系用于立體圖像重定向中,能夠獲得較好的結(jié)果。
附圖說明:
圖1為原始的左右視圖。
圖2為基于計算出的匹配圖獲得的重定向后的左右視圖。
圖3為流程圖。
具體實(shí)施方式
為克服現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種立體圖像匹配圖計算方法,所述方法包括以下步驟:
1.能量方程的建立
在對立體圖像中的像素進(jìn)行融合、插入、移除等處理時需要注意像素之間匹配關(guān)系的保存。線匹配對能夠顯示左右視圖之間的關(guān)系因此能夠避免立體圖像的不匹配變形。同時,線匹配能夠維持圖像的空間相關(guān)性。因此,選擇線匹配對來表示立體圖像對之間的像素關(guān)系。首先,在線匹配像素之前進(jìn)行線選擇。建立能量方程來對線選擇進(jìn)行模型化處理,該能量方程同時考慮了線的選擇特性和匹配特性,定義如下:
Etotal(i,j,j±)=α·Eselect(i,j,j±)+(1-α)·Ematch(i,j),
j±代表第i-1行被選擇的像素的縱坐標(biāo)。使用廣義上的線,也就是說,i-1行中被選擇的像素可以是該行任意一個像素,而不像連續(xù)的線那樣,i-1行中被選擇的像素必須是第i行被選擇像素的相鄰像素,也就是說j±∈{j-1,j,j+1}。。α是一個權(quán)衡因子,表示線選擇特性和線匹配特性的重要性。
2.基于動態(tài)規(guī)劃的線選擇
建立了能量方程之后,根據(jù)該能量方程建立代價矩陣M,并采用動態(tài)規(guī)劃方法進(jìn)行線選擇。能量值低的線將會被首先選擇,因?yàn)樵摼€上的像素很有可能正確匹配并且與周圍像素有較高的相似性。特別地,左視圖中能看到而右視圖看不見的點(diǎn)被稱為被遮擋點(diǎn)。由于被遮擋的像素沒有匹配像素點(diǎn),不能被選擇,因此將這些點(diǎn)的代價值設(shè)為無窮M(i,j)=∞,該約束能夠避免被遮擋像素被選擇。所以代價矩陣如下:
O(i,j)是一個二值圖,代表坐標(biāo)為(i,j)的像素是否被遮擋。在本發(fā)明中,O(i,j)=1代表坐標(biāo)位置為(i,j)的像素沒有被遮擋,是可以匹配的;O(i,j)=0代表坐標(biāo)位置為(i,j)的像素被遮擋。
被選擇的線將會從代價矩陣M中移除以免重復(fù)選擇。然后,重新計算代價矩陣M來選擇出下一條線。該動態(tài)規(guī)劃過程將會重復(fù)直到某一行中剩下的像素全部為不能被選擇的被遮擋點(diǎn)為止。
3.匹配圖的建立
線選擇之后,按照選擇的順序,進(jìn)行線匹配。首先,線中的像素根據(jù)視差關(guān)系尋找匹配像素得到匹配線對。然后,線匹配對被暫時移除,以避免重復(fù)匹配。接著尋找下一個線匹配對。這個過程將會持續(xù)直到每一條線都有一個匹配線。
線匹配之后,每一個線對會被分配一個ID。ID代表線匹配的順序,其值是從1到n。n是線選擇的數(shù)目。在圖像對中,除了那些被選擇的像素,剩下的被遮擋像素也會分配一個ID值。從左到右,這些像素將會按順序的分配一個ID,ID值從n+1到W(W是原圖像的寬度)。通過這種方法,每一行中的每一個像素都會有一個ID值,而且右視圖中的匹配像素也會有相同的ID值。而且,被遮擋點(diǎn)在右視圖中也會有一個匹配像素。根據(jù)ID值,所有的像素被匹配而且獲得了匹配圖。
4.基于匹配圖的匹配關(guān)系建立
建立好匹配圖之后,用匹配圖將左右視圖的像素進(jìn)行匹配。左右視圖中,ID值相同的像素就是相匹配的像素。將匹配像素做相同的處理,能夠保存左右視圖的一致性。而且匹配圖是滿射圖,解決了視差關(guān)系中的多對一的映射情況,從而保存了空間相干性,減小了視覺失真。
下面通過立體圖像重定向過程說明本發(fā)明的最佳實(shí)施方式:
1.能量方程的建立
在對立體圖像中的像素進(jìn)行融合,插入,移除等處理時需要注意像素之間匹配關(guān)系的保存。線匹配對能夠顯示左右視圖之間的關(guān)系因此能夠避免立體圖像的不匹配變形。而且,線匹配能夠維持圖像的空間相關(guān)性。因此選擇線匹配對來表示立體圖像對之間的像素關(guān)系。首先,在線匹配像素之前,需要進(jìn)行線選擇。本發(fā)明通過建立能量方程來對線選擇進(jìn)行模型化處理,該能量方程同時考慮了線的選擇特性和匹配特性,定義如下:
Etotal(i,j,j±)=α·Eselect(i,j,j±)+(1-α)·Ematch(i,j),
j±代表第i-1行被選擇的像素。我們使用廣義上的線,也就是說,i-1行中被選擇的像素可以是該行任意一個像素,而不像連續(xù)的線那樣,i-1行中被選擇的像素必須是第i行被選擇像素的相鄰像素,也就是說j±∈{j-1,j,j+1}。。α是一個權(quán)衡因子,來表示線選擇特性和線匹配特性的重要性。
1)線選擇特性的能量方程
同一條線上的相鄰像素應(yīng)該相似,而且線周圍的像素應(yīng)該有相似的紋理特征和深度值??紤]到這個情況,線選擇能量方程Eselect由和這兩部分組成:
代表像素之間的紋理相似度;代表像素之間的深度相似度。能量方程的定義如下:
代表同一條線上像素之間的相似性,是線周圍像素之間的相似性。的定義如下:
T(i,j)代表左視圖中坐標(biāo)位置為(i,j)的像素的紋理特征值。線周圍像素是由第i-1行被選擇的像素的坐標(biāo)決定的,可以分為三種情況。的定義如下:
其中
W=|T(i,j-1)-T(i,j+1)|,
表示像素之間視差相似性的能量方程的定義和相似,只是將紋理特征換成視差特征。
2)線匹配的能量方程
在本發(fā)明中,像素之間的匹配是通過視差關(guān)系做到的。視差圖的錯誤能夠造成不正確的像素匹配。視差關(guān)系計算正確的像素更應(yīng)該被匹配。用匹配能量方程來計算像素匹配的正確性,該能量方程由兩部分組成:
Ematch(i,j)=Ediff(i,j)+Ecorrect(i,j).
Ediff代表匹配像素之間的紋理差異,定義如下:
其中D(i,j)代表坐標(biāo)位置為(i,j)的像素的視差值,代表右視圖坐標(biāo)位置為(i,j+D(i,j))的像素的紋理特征值。
顯然,正確匹配的像素之間應(yīng)該有相同的是差值,因此,可以用下面方程計算相匹配像素之間的視差失真:
代表右視圖坐標(biāo)位置為(i,j+D(i,j))的像素的視差值。
2.利用動態(tài)規(guī)劃進(jìn)行線選擇
能量方程建立好之后,根據(jù)該能量方程建立代價矩陣M,并且利用動態(tài)規(guī)劃來選擇線。能量值低的線將會被選擇,因?yàn)樵摼€上的像素很有可能正確匹配并且與周圍像素有較高的相似性。左視圖中能看到而右視圖看不見的點(diǎn)被稱為被遮擋點(diǎn)。因?yàn)楸徽趽醯南袼貨]有匹配像素點(diǎn),不能被選擇,因此將這些點(diǎn)的代價值設(shè)為無窮M(i,j)=∞,該約束能夠避免被遮擋像素被選擇。所以代價矩陣如下:
O(i,j)是一個二值圖,代表坐標(biāo)位置為(i,j)的像素是否被遮擋。在本發(fā)明中,O(i,j)=1代表坐標(biāo)位置為(i,j)的像素沒有被遮擋,是可以匹配的;O(i,j)=0代表坐標(biāo)位置為(i,j)的像素被遮擋。
本發(fā)明利用動態(tài)規(guī)劃來選擇出線。首先在第一行或是最后一行選擇出能量值最小的點(diǎn)作為線的開端。接著選擇出下一行中能量值最小的點(diǎn)最為線中第二個點(diǎn)。需要注意的是,一般情況下,選擇出的線是連續(xù)的,所以除了第一行,其他行的像素的選擇范圍,應(yīng)該是上一行的相鄰像素點(diǎn),也就是說j±∈{j-1,j,j+1};但是如果相鄰像素點(diǎn)都是遮擋點(diǎn)的話,那么選擇范圍應(yīng)該擴(kuò)大到整行。用上述方法,每一層選擇出一個像素點(diǎn),得到最終的線。被選擇的線將會從代價矩陣M中刪除以免重復(fù)選擇。然后代價矩陣M將會被重新計算來選擇出下一條線。該動態(tài)規(guī)劃過程將會重復(fù)直到某一行中剩下的像素全部為不能被選擇的被遮擋點(diǎn)為止。
3.匹配圖的計算
一般而言,如果立體圖像對單獨(dú)處理的話會產(chǎn)生嚴(yán)重的視差失真。因此,圖像對中相配的像素應(yīng)該進(jìn)行相匹配的處理,而且應(yīng)該計算出匹配圖來表明像素之間的匹配關(guān)系。如果直接用視差圖作為匹配圖的話,明顯的視覺失真將會發(fā)生。因?yàn)椴荒鼙WC通過視差關(guān)系每一個像素都有一個像素與之匹配。應(yīng)該建立一個滿射的匹配圖來減少因?yàn)殄e誤匹配造成的失真。
選擇好線之后,按照選擇的順序,我們進(jìn)行線匹配。首先,線中的像素根據(jù)視差關(guān)系尋找匹配像素得到匹配線。接著,線匹配對將會暫時移除避免重復(fù)匹配。接著尋找下一個線匹配對。這個過程將會持續(xù)直到每一條線都有一個匹配線。
線匹配之后,每一個線對都會分配一個ID。ID代表線匹配的順序,其值是從1到n。n是線選擇的數(shù)目。在圖像對中,除了那些被選擇的像素,剩下的像素也會分配一個ID值。從左到右,這些像素將會按順序的分配一個ID,ID值從n+1到W(W是原圖像的寬度)。通過這種方法,每一行中的每一個像素都會有一個獨(dú)特的ID值,而且右視圖中的匹配像素也會有相同的ID值。而且,被遮擋點(diǎn)在右視圖中也會有一個匹配像素。根據(jù)ID值,所有的像素被匹配而且獲得了匹配圖。
4.基于匹配圖的匹配關(guān)系建立
建立好匹配圖之后,用匹配圖將左右視圖的像素進(jìn)行匹配。左右視圖中,ID值相同的像素就是相匹配的像素。將匹配像素做相同的處理,能夠保存左右視圖的一致性。而且匹配圖是滿射圖,解決了視差關(guān)系中的多對一的映射情況,從而保存了空間相干性,減小了視覺失真。