本发明涉及视差确定技术领域,特别是涉及一种确定最大视差的方法。
背景技术:
在3D成像的立体匹配过程中,现有技术通常需要设置一个最大视差值,并将该视差值作为匹配搜索的终点。在实际应用过程中,传统方法通常按照经验设定一个最大的视差值,这种方法在原理上并不存在任何问题。但是,该方法不够高效,主要原因是:在同一图像分辨率下,根据最近景物离镜头的远近不同, 图像的最大视差大小不同。如果对所有的图像设置同一个最大视差值,那么,对于实际最大视差与设置的最大视差相差不多时,是比较合理的;然而, 当实际最大视差与该设置的最大视差相差较多时,这样做就不合理了,不仅会增大误匹配的概率,而且还会增大计算时间。
技术实现要素:
本发明的目的在于克服现有技术的不足,提供一种自适应的最大视差求解方法,能够为不同图像的给出合适的最大视差。
本发明的目的是通过以下技术方案来实现的:一种确定最大视差的方法,包括以下步骤:获取第一图像和第二图像,计算出最大理论视差;在所述第一图像中求取一组稀疏特征点;根据所述最大理论视差,在所述第二图像中寻找对应所述稀疏特征点的一组第一匹配点;以所述第二图像中的第一匹配点为特征点,以所述最大视差值为最大匹配视差,在所述第一图像中寻找对应所述第一匹配点的一组第二匹配点,对每个第二匹配点,若与对应的所述稀疏特征点相同,则求出该所述稀疏特征点和对应所述第一匹配点的点视差值;在所有计算出的点视差值中,求出最大值Dmax;将最大视差设为(1+k)*Dmax,其中k为常数。
计算最大理论视差包括在确定测量范围时,根据视觉系统的标定参数计算所述最大理论视差值D1。
所述稀疏特征点为surf特征点或Harris角点。
所述方法还包括在所述计算出的视差值中去除噪点影响。
在所述计算出的点视差值中去除噪点影响包括:对所有计算出的点视差值进行统计,得到点视差值的数值分布和频数;对分布的所有数值从大到小进行搜索,记录第一个频数大于第一阈值的第一值d;验证所述第一值d是否受噪点影响,若所述第一值d未受噪点影响,该第一值d即为点视差的最大值,否则,将该第一值d的频数置零,之后重新搜索新的第一值d并验证是否受到噪点影响。
验证所述第一值d是否受噪点影响,包括:在所述第一图像中匹配成功的所有点视差值为第一值d的稀疏特征点中随机选择n个点作为检验点,n为正整数,同时记录该n个检验点对应在所述第二图像中的n个第一匹配点;判断所述第一图像中以每个检验点为中心的第一区域内的图像,与所述第二图像中以对应的每个第一匹配点为中心的第一区域内图像是否一致; 统计每个检验点的验证结果,如果结果一致的数量多于不一致的数量,则认为所述第一值未受噪点影响,否则,认为所述第一值受噪点影响。
本发明的有益效果是:本发明通过设置自适应的最大视差值,使其适用于不同的场景,即为每一个场景设置一个适合于该场景的最大视差值。
附图说明
图1为本发明中确定最大视差的方法的流程图;
图2为本发明中在计算出的点视差值中去除噪点影响的流程图。
具体实施方式
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
如图1所示,一种确定最大视差的方法,包括以下步骤:
获取第一图像和第二图像,计算出最大理论视差。
计算最大理论视差包括在确定测量范围时,根据视觉系统的标定参数计算所述最大理论视差值D1。
在所述第一图像中求取一组稀疏特征点。
所述稀疏特征点为surf特征点或Harris角点。
根据所述最大理论视差,在所述第二图像中寻找对应所述稀疏特征点的一组第一匹配点;
以所述第二图像中的第一匹配点为特征点,以所述最大视差值为最大匹配视差,在所述第一图像中寻找对应所述第一匹配点的一组第二匹配点,对每个第二匹配点,若与对应的所述稀疏特征点相同,则求出该所述稀疏特征点和对应所述第一匹配点的点视差值。
所述方法还包括在所述计算出的视差值中去除噪点影响。
如图2所示,在所述计算出的点视差值中去除噪点影响包括: 对所有计算出的点视差值进行统计,得到点视差值的数值分布和频数;对分布的所有数值从大到小进行搜索,记录第一个频数大于第一阈值的第一值d;验证所述第一值d是否受噪点影响:若所述第一值d未受噪点影响,则该第一值d即为点视差的最大值,若所述第一值d受噪点影响,则将该第一值d的频数置零,之后重新搜索新的第一值d并验证是否受到噪点影响。
验证所述第一值d是否受噪点影响的方法包括:在所述第一图像中匹配成功的所有点视差值为第一值d的稀疏特征点中随机选择n个点作为检验点,n为正整数,同时记录该n个检验点对应在所述第二图像中的n个第一匹配点;判断所述第一图像中以每个检验点为中心的第一区域内的图像,与所述第二图像中以对应的每个第一匹配点为中心的第一区域内图像是否一致; 统计每个检验点的验证结果,如果结果一致的数量多于不一致的数量,则认为所述第一值未受噪点影响,否则,认为所述第一值d受噪点影响。第一区域可以为第一匹配点为中心、半径为11像素的近似圆,也可以为第一匹配点为中心、边长为11*11像素的矩形。
在所有计算出的点视差值中,求出最大值Dmax。
将最大视差设为(1+k)*Dmax,其中k为常数,k是一个经验常数,可以取0.2。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。