一种立体图像匹配图计算方法与流程

文档序号:12273085阅读:452来源:国知局
一种立体图像匹配图计算方法与流程

本发明属于图像处理、立体视觉技术领域,具体讲本发明涉及一种用于重定向的立体图像匹配图计算方法。



背景技术:

与平面图像相比,立体图像具有的深度信息能够为重定向带来有价值的线索。然而,该信息的保存也为立体图像重定向带来了新的挑战。立体图像重定向不仅要减小视觉失真,还要减小视差失真。视差值的改变会影响图像的立体感知,甚至使得立体效果完全消失。将平面图像重定向算法直接应用到立体图像时,由于忽视了立体图像中像素之间的视差关系,会带来严重的视差失真。为了减少视差失真,立体图像重定向过程中需要注意保持像素之间匹配关系。

现存的方法一般用视差关系来找到匹配像素。首先计算出左视图和右视图的视差图,再根据视差关系,左视图中的像素点找到其在右视图中的匹配点。比如离散的重定向方法中,立体线裁剪的方法就是通过去除掉左右视图中相匹配的像素来对立体图像进行重定向处理。该方法中,先计算出左视图中的裁减线,再根据视差图,找到右视图中相匹配的裁减线。由于该方法没有考虑到空间相关性,当需要裁剪的线较多时,会出现很严重的失真。连续的重定向方法,比如网格变换方法,通过调整网格顶点的坐标来对图像进行重定向处理。这种方法中,左视图中网格顶点或者是特征点根据视差关系找到其在右视图中的匹配点,再对这些匹配点做相对应的处理,得到最终的立体图像重定向结果。由于只对一些稀疏的点进行匹配处理,其他未匹配点的变化很可能会造成严重的视差失真。这些方法都是先对左视图中的像素进行处理,再通过视差图来找到其在右视图的匹配像素点,再做相应的处理,来保存视差关系,减小失真。由于计算错误或者是遮挡点的原因,有一些右视图中的点无法与左视图中的点相匹配。上述方法中,不需要对所有的像素进行处理,所以只找出那些能够较好匹配地点进行处理。但是如果遇到需要对所有像素进行匹配处理的情况,直接利用视差图进行匹配会造成严重的失真。

基于像素融合的图像重定向方法需要计算每一个像素的缩放因子来得到最终的重定向图像。如果立体图像的视差关系计算错误或遇到遮挡点,左视图中的像素不能够与右视图中的像素进行一对一匹配,这就导致右视图中有些点不能够得到匹配信息。为了给右视图中所有的点找到相匹配的点,可以根据右视图的视差图来找到左视图中与右视图中的像素相匹配的点。但是这种方法还是会出现多对一的情况,造成失真,也不能保存空间相关性。



技术实现要素:

为克服现有技术的不足,针对单纯的利用视差关系来对左右视图中的像素进行匹配,有时会产生多个像素有相同的匹配点的情况,本发明旨在提出一种立体图像匹配图计算方法,为立体图像重定向带来较好的像素匹配结果。本发明采用的技术方案是,立体图像匹配图计算方法,步骤如下:

1.能量方程的建立

选择线匹配对来表示立体图像对之间的像素关系:首先,在线匹配像素之前进行线选择,建立能量方程来对线选择进行模型化处理,该能量方程同时考虑了线的选择特性和匹配特性,定义如下:

Etotal(i,j,j±)=α·Eselect(i,j,j±)+(1-α)·Ematch(i,j),

其中i代表像素的横坐标,j代表像素的纵坐标,j±代表第i-1行被选择的像素的纵坐标。使用广义上的线,也就是说,i-1行中被选择的像素可以是该行任意一个像素,而不像连续的线那样,i-1行中被选择的像素必须是第i行被选择像素的相邻像素,也就是说j±∈{j-1,j,j+1}。α是一个权衡因子,表示线选择特性和线匹配特性的重要性,Eselect为线选择特性的能量方程,Ematch为线匹配的能量方程;

2.基于动态规划的线选择

建立了能量方程之后,根据该能量方程建立代价矩阵M,并采用动态规划方法进行线选择;由于被遮挡的像素没有匹配像素点,不能被选择,因此将这些点的代价值设为无穷M(i,j)=∞,该约束能够避免被遮挡像素被选择,所以代价矩阵如下:

O(i,j)是一个二值图,代表坐标为(i,j)的像素是否被遮挡;

被选择的线将会从代价矩阵M中移除以免重复选择,然后重新计算代价矩阵M来选择出下一条线,该动态规划过程将会重复直到某一行中剩下的像素全部为不能被选择的被遮挡点为止;

3.匹配图的建立

线选择之后,按照选择的顺序,进行线匹配。首先,线中的像素根据视差关系寻找匹配像素得到匹配线对。然后,线匹配对被暂时移除,以避免重复匹配。接着寻找下一个线匹配对。这个过程将会持续直到每一条线都有一个匹配线;

线匹配之后,每一个线对会被分配一个ID,ID代表线匹配的顺序,其值是从1到n。n是线选择的数目,在图像对中,除了那些被选择的像素,剩下的被遮挡像素也会分配一个ID值,从左到右,这些像素将会按顺序的分配一个ID,ID值从n+1到W,W是原图像的宽度,通过这种方法,每一行中的每一个像素都会有一个ID值,而且右视图中的匹配像素也会有相同的ID值,而且,被遮挡点在右视图中也会有一个匹配像素,根据ID值,所有的像素被匹配而且获得了匹配图;

4.基于匹配图的匹配关系建立

建立好匹配图之后,用匹配图将左右视图的像素进行匹配,左右视图中,ID值相同的像素就是相匹配的像素,将匹配像素做相同的处理,能够保存左右视图的一致性。

所建立的匹配图是以线为单位的;结合像素之间纹理相似性和视差相似性,能够增加匹配的准确性;建立的匹配图是满射图,能够将左右视图像素进行一对一匹配。

其中,1)线选择特性的能量方程

同一条线上的相邻像素应该相似,而且线周围的像素应该有相似的纹理特征和深度值。考虑到这个情况,线选择能量方程Eselect由和这两部分组成:

代表像素之间的纹理相似度;代表像素之间的深度相似度,能量方程的定义如下:

代表同一条线上像素之间的相似性,是线周围像素之间的相似性,的定义如下:

T(i,j)代表左视图中坐标为(i,j)的像素的纹理特征值。线周围像素的坐标是由第i-1行被选择的像素坐标决定的,分为三种情况,的定义如下:

其中

W=|T(i,j-1)-T(i,j+1)|,

表示像素之间视差相似性的能量方程的定义和相似,只是将纹理特征换成视差特征。

2)线匹配的能量方程

用匹配能量方程来计算像素匹配的正确性,该能量方程由两部分组成:

Ematch(i,j)=Ediff(i,j)+Ecorrect(i,j).

Ediff代表匹配像素之间的纹理差异,定义如下:

其中D(i,j)代表坐标位置为(i,j)的像素的视差值,代表右视图坐标位置为(i,j+D(i,j))的像素的纹理特征值。用下面方程计算相匹配像素之间的视差失真:

代表右视图坐标位置为(i,j+D(i,j))的像素的视差值。

本发明的特点及有益效果是:

本发明建立了一种匹配图来代替原有的视差匹配关系,获得所有像素之间的一对一匹配关系图。该像素匹配是基于线的匹配,能够增加空间相关性,将该匹配关系用于立体图像重定向中,能够获得较好的结果。

附图说明:

图1为原始的左右视图。

图2为基于计算出的匹配图获得的重定向后的左右视图。

图3为流程图。

具体实施方式

为克服现有技术的不足,本发明提供了一种立体图像匹配图计算方法,所述方法包括以下步骤:

1.能量方程的建立

在对立体图像中的像素进行融合、插入、移除等处理时需要注意像素之间匹配关系的保存。线匹配对能够显示左右视图之间的关系因此能够避免立体图像的不匹配变形。同时,线匹配能够维持图像的空间相关性。因此,选择线匹配对来表示立体图像对之间的像素关系。首先,在线匹配像素之前进行线选择。建立能量方程来对线选择进行模型化处理,该能量方程同时考虑了线的选择特性和匹配特性,定义如下:

Etotal(i,j,j±)=α·Eselect(i,j,j±)+(1-α)·Ematch(i,j),

j±代表第i-1行被选择的像素的纵坐标。使用广义上的线,也就是说,i-1行中被选择的像素可以是该行任意一个像素,而不像连续的线那样,i-1行中被选择的像素必须是第i行被选择像素的相邻像素,也就是说j±∈{j-1,j,j+1}。。α是一个权衡因子,表示线选择特性和线匹配特性的重要性。

2.基于动态规划的线选择

建立了能量方程之后,根据该能量方程建立代价矩阵M,并采用动态规划方法进行线选择。能量值低的线将会被首先选择,因为该线上的像素很有可能正确匹配并且与周围像素有较高的相似性。特别地,左视图中能看到而右视图看不见的点被称为被遮挡点。由于被遮挡的像素没有匹配像素点,不能被选择,因此将这些点的代价值设为无穷M(i,j)=∞,该约束能够避免被遮挡像素被选择。所以代价矩阵如下:

O(i,j)是一个二值图,代表坐标为(i,j)的像素是否被遮挡。在本发明中,O(i,j)=1代表坐标位置为(i,j)的像素没有被遮挡,是可以匹配的;O(i,j)=0代表坐标位置为(i,j)的像素被遮挡。

被选择的线将会从代价矩阵M中移除以免重复选择。然后,重新计算代价矩阵M来选择出下一条线。该动态规划过程将会重复直到某一行中剩下的像素全部为不能被选择的被遮挡点为止。

3.匹配图的建立

线选择之后,按照选择的顺序,进行线匹配。首先,线中的像素根据视差关系寻找匹配像素得到匹配线对。然后,线匹配对被暂时移除,以避免重复匹配。接着寻找下一个线匹配对。这个过程将会持续直到每一条线都有一个匹配线。

线匹配之后,每一个线对会被分配一个ID。ID代表线匹配的顺序,其值是从1到n。n是线选择的数目。在图像对中,除了那些被选择的像素,剩下的被遮挡像素也会分配一个ID值。从左到右,这些像素将会按顺序的分配一个ID,ID值从n+1到W(W是原图像的宽度)。通过这种方法,每一行中的每一个像素都会有一个ID值,而且右视图中的匹配像素也会有相同的ID值。而且,被遮挡点在右视图中也会有一个匹配像素。根据ID值,所有的像素被匹配而且获得了匹配图。

4.基于匹配图的匹配关系建立

建立好匹配图之后,用匹配图将左右视图的像素进行匹配。左右视图中,ID值相同的像素就是相匹配的像素。将匹配像素做相同的处理,能够保存左右视图的一致性。而且匹配图是满射图,解决了视差关系中的多对一的映射情况,从而保存了空间相干性,减小了视觉失真。

下面通过立体图像重定向过程说明本发明的最佳实施方式:

1.能量方程的建立

在对立体图像中的像素进行融合,插入,移除等处理时需要注意像素之间匹配关系的保存。线匹配对能够显示左右视图之间的关系因此能够避免立体图像的不匹配变形。而且,线匹配能够维持图像的空间相关性。因此选择线匹配对来表示立体图像对之间的像素关系。首先,在线匹配像素之前,需要进行线选择。本发明通过建立能量方程来对线选择进行模型化处理,该能量方程同时考虑了线的选择特性和匹配特性,定义如下:

Etotal(i,j,j±)=α·Eselect(i,j,j±)+(1-α)·Ematch(i,j),

j±代表第i-1行被选择的像素。我们使用广义上的线,也就是说,i-1行中被选择的像素可以是该行任意一个像素,而不像连续的线那样,i-1行中被选择的像素必须是第i行被选择像素的相邻像素,也就是说j±∈{j-1,j,j+1}。。α是一个权衡因子,来表示线选择特性和线匹配特性的重要性。

1)线选择特性的能量方程

同一条线上的相邻像素应该相似,而且线周围的像素应该有相似的纹理特征和深度值。考虑到这个情况,线选择能量方程Eselect由和这两部分组成:

代表像素之间的纹理相似度;代表像素之间的深度相似度。能量方程的定义如下:

代表同一条线上像素之间的相似性,是线周围像素之间的相似性。的定义如下:

T(i,j)代表左视图中坐标位置为(i,j)的像素的纹理特征值。线周围像素是由第i-1行被选择的像素的坐标决定的,可以分为三种情况。的定义如下:

其中

W=|T(i,j-1)-T(i,j+1)|,

表示像素之间视差相似性的能量方程的定义和相似,只是将纹理特征换成视差特征。

2)线匹配的能量方程

在本发明中,像素之间的匹配是通过视差关系做到的。视差图的错误能够造成不正确的像素匹配。视差关系计算正确的像素更应该被匹配。用匹配能量方程来计算像素匹配的正确性,该能量方程由两部分组成:

Ematch(i,j)=Ediff(i,j)+Ecorrect(i,j).

Ediff代表匹配像素之间的纹理差异,定义如下:

其中D(i,j)代表坐标位置为(i,j)的像素的视差值,代表右视图坐标位置为(i,j+D(i,j))的像素的纹理特征值。

显然,正确匹配的像素之间应该有相同的是差值,因此,可以用下面方程计算相匹配像素之间的视差失真:

代表右视图坐标位置为(i,j+D(i,j))的像素的视差值。

2.利用动态规划进行线选择

能量方程建立好之后,根据该能量方程建立代价矩阵M,并且利用动态规划来选择线。能量值低的线将会被选择,因为该线上的像素很有可能正确匹配并且与周围像素有较高的相似性。左视图中能看到而右视图看不见的点被称为被遮挡点。因为被遮挡的像素没有匹配像素点,不能被选择,因此将这些点的代价值设为无穷M(i,j)=∞,该约束能够避免被遮挡像素被选择。所以代价矩阵如下:

O(i,j)是一个二值图,代表坐标位置为(i,j)的像素是否被遮挡。在本发明中,O(i,j)=1代表坐标位置为(i,j)的像素没有被遮挡,是可以匹配的;O(i,j)=0代表坐标位置为(i,j)的像素被遮挡。

本发明利用动态规划来选择出线。首先在第一行或是最后一行选择出能量值最小的点作为线的开端。接着选择出下一行中能量值最小的点最为线中第二个点。需要注意的是,一般情况下,选择出的线是连续的,所以除了第一行,其他行的像素的选择范围,应该是上一行的相邻像素点,也就是说j±∈{j-1,j,j+1};但是如果相邻像素点都是遮挡点的话,那么选择范围应该扩大到整行。用上述方法,每一层选择出一个像素点,得到最终的线。被选择的线将会从代价矩阵M中删除以免重复选择。然后代价矩阵M将会被重新计算来选择出下一条线。该动态规划过程将会重复直到某一行中剩下的像素全部为不能被选择的被遮挡点为止。

3.匹配图的计算

一般而言,如果立体图像对单独处理的话会产生严重的视差失真。因此,图像对中相配的像素应该进行相匹配的处理,而且应该计算出匹配图来表明像素之间的匹配关系。如果直接用视差图作为匹配图的话,明显的视觉失真将会发生。因为不能保证通过视差关系每一个像素都有一个像素与之匹配。应该建立一个满射的匹配图来减少因为错误匹配造成的失真。

选择好线之后,按照选择的顺序,我们进行线匹配。首先,线中的像素根据视差关系寻找匹配像素得到匹配线。接着,线匹配对将会暂时移除避免重复匹配。接着寻找下一个线匹配对。这个过程将会持续直到每一条线都有一个匹配线。

线匹配之后,每一个线对都会分配一个ID。ID代表线匹配的顺序,其值是从1到n。n是线选择的数目。在图像对中,除了那些被选择的像素,剩下的像素也会分配一个ID值。从左到右,这些像素将会按顺序的分配一个ID,ID值从n+1到W(W是原图像的宽度)。通过这种方法,每一行中的每一个像素都会有一个独特的ID值,而且右视图中的匹配像素也会有相同的ID值。而且,被遮挡点在右视图中也会有一个匹配像素。根据ID值,所有的像素被匹配而且获得了匹配图。

4.基于匹配图的匹配关系建立

建立好匹配图之后,用匹配图将左右视图的像素进行匹配。左右视图中,ID值相同的像素就是相匹配的像素。将匹配像素做相同的处理,能够保存左右视图的一致性。而且匹配图是满射图,解决了视差关系中的多对一的映射情况,从而保存了空间相干性,减小了视觉失真。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1