一种基于视差图的空洞填充装置制造方法及图纸

技术编号:8611846 阅读:261 留言:1更新日期:2013-04-20 00:21
本发明专利技术公开了一种基于视差图的空洞填充装置,如果目标图像为左视图(右视图),通过检测跃变模块、标记空洞模块对视差图的视差值从右向左(从左到右)逐行逐像素点进行跃变检测和空洞标记,得到像素点的前景像素点视差值Forgroud_M、不含空洞的视差值Noholes_M、差值D_M以及空洞标记送入填充空洞模块中进行空洞填充,得填充后的像素点视差值,然后再用填充较大空洞的视差值来代替该较大空洞边缘的背景像素点的视差值即进行膨胀,膨胀后的视差值,构成目标图像对应的没有空洞和消除匹配误差后的新的视差图M2,最后,根据视差图M2生成目标图像。这样实现硬件以数据流的方式进行空洞填充的发明专利技术目的。

【技术实现步骤摘要】
一种基于视差图的空洞填充装置
本专利技术属于基于深度图像绘制(Depth-1mage-Based Rendering,简称DIBR)
,更为具体地讲,涉及一种基于视差图的空洞填充装置。
技术介绍
近年来的热播3D电影,给人类视觉带来了强烈冲击,促进了 3D产业的发展。目前虽开通了 3D频道,但3D影视资源依然匮乏,2D/3D技术仍有其广泛的应用市场。基于深度图像绘制(Depth-1mage-Based Rendering,简称DIBR)技术根据参考图像(reference image)及其对应的深度图像(depth image)来生成新视点图像(目标图像)。与传统的需要传递左右眼两路视频的3D视频相比,采用DIBR技术之后仅需要传送一路视频及其深度图像就可生成立体图像对,而且可以很方便的实现二维和三维的切换,正因为如此,DIBR技术在3D电视立体图像对(stereo pair)的生成中得到了广泛应用,它也引起了人们愈来愈浓厚的兴趣。采用DIBR技术来生成目标图像时,由于视点的改变,参考图像中不可能包含目标图像中的全部信息,从而产生空洞(holes),空洞严重影响了目标视图的质量,成为最主要也是最难解决的问题。在本申请人申请的、2012年01月04日公布的、公布号为102307312A、名称为“一种对DIBR技术生成的目标图像进行空洞填充的方法”的中国专利技术专利公布中,提出了一种基于视差图的空洞填充算法。1、视差图视差图M表示的是目标图像(Destination Image)相对参考图像(Reference Image)的平移。为避免视觉疲劳(Visual Fatigue),在形成目标图像时通常采用平行摄像机设置 (Parallel Camera Configuration)。在该设置下,目标图像和参考图像上的点在垂直方向的位置不变,仅在水平方向有平移,称该平移被称为视差值,视差值是视差图上像素点的值,其定义如下M (udes, V) = Udes-Uref(I)其中(udes,v),(ur ef, v)分别表示目标图像上的点和其参考图像上的对应的匹配点,M(udes, v)表示目标图像上对应点的视差值。只需确定目标图像上的点的坐标(udes, V) 和对应点的视差值M(udes,V),就可以找到参考图像上的点Ow,V),从而视差图建立了目标图像和参考图像的桥梁式,公式(I)定义了非空洞点的视差值,当目标图像对应点为空洞点时,在参考图像上找不到与之对应的匹配点,从而无法确定uMf,为便于表示,将空洞点对应的视差值的定为-128 (考虑到视觉舒适度,非空点的视差不能取到-128)。2、空洞填充算法由于视点的改变,深度图像的不连续等,参考图像里不包含目标图像里所需的全部信息,因而三维图像变换后生成的目标图像里将出现空洞,如图1所示。从图1中可以看出,目标图像中存在较大空洞和较小空洞,较小空洞可以用滤波 (中值滤波,或均值滤波)或插值的方法来填充,但较大空洞无法用滤波去除,且用插值的方法不能取得较好的效果。基于视差图的空洞填充方法不需要预处理深度图,从而能够保持非空洞区域的真实性。该方法的核心思想是用较大空洞邻域的背景像素来填充该较大空洞,其实质是使参考图像中的背景像素点平移与其前景像素点一样的距离。基于视差图的空洞填充方法的难点在于如何找到较大空洞区域对应的背景像素点。由于视差图M表示目标图像相对参考图像的平移,通过目标图像以及对应的视差图便可以找到参考图像上对应的匹配点,因此只需修改视差图M上的视差值便可以通过逆向映射来填充空洞。除边缘空洞外,若目标图像在参考图像的左边(下文都以左视图代替),较大空洞出现在前景物体的左边,若目标图像在参考图像的右边(下文都以右视图代替),较大空洞出现在前景物体的右边。从而,对于左(右)视图来说,只需将较大空洞对应的视差值修改成离该空洞右(左)边缘最近的前景像素点对应的视差值便可。左(右)视图的较小空洞对应的视差值用空洞左(右)边缘非空像素点对应的视差值来代替。基于视差图的空洞填充方法如图2所示。第一步标记空洞。区分大空洞和小空洞,以便于后续处理。第二步膨胀较大空洞,以消除匹配误差,并检测到该较大空洞右(左)边缘最近的前景像素点对应的视差值,用来填充该空洞的视差值。由于深度图像中前景物体的轮廓比参考图像中的轮廓要小,若未通过预处理深度图后,则生成目标图像中的较大空洞的边缘可能存在匹配误差(Matching error,也称为Ghost contour),通过区分较大空洞的左右边缘区域的前景像素点和背景像素点,并膨胀空洞边缘区域为背景像素点的较大空洞来消除匹配误差,膨胀的个数为1,膨胀过程的实质是将需要膨胀的这I个点的对应的视差值改成-128。第三步空洞填充,即用第二步得到的视差值d来代替较大空洞点的视差值,得到不含空洞(即-128)的新的视差图。需要注意的是若udes-d的值大于图像的宽度或小于I (即超过了参考图像的边界),则该像素点对应的视差值被修订为O。第四步像素拷贝,这是一个逆向映射的过程,主要根据公式(I)来生成目标图像。但是现有技术的基于视差图的空洞填充方法如果采用软件处理方式是可行的,但如果采用硬件处理,则由于视差图是流的方式,则无法直接采用有的基于视差图的空洞填充方法进行空洞填充。
技术实现思路
本专利技术的 目的在于克服现有技术的不足,提供一种基于视差图的空洞填充装置, 采用硬件方式进行基于视差图的空洞填充。为实现上述目的,本专利技术基于视差图的空洞填充装置,其特征在于,包括一配置寄存器单元,用于存储检测跃变时的阈值,以区分前景像素点和背景像素点,存储较大空洞膨胀的像素点的个数;一存储模块,用于存储空洞填充需要的参考图像以及输出的目标图像;—检测跃变模块,用于检测像素点视差值的跃变;一标记空洞模块,用于标记空洞;如果目标图像是左视图,则视差图的视差值从右到左、如果目标图像是右视图,则视差图的视差值从左到右逐行逐像素点以数据流方式输入检测跃变模块和标记空洞模块中,配制寄存器单元的跃变阈值送入检测跃变模块中,检测跃变模块对输入的视差值的跃变进行检测,对于左(右)视图来说,如果在非空洞点处,跃变是较小(大)视差值跃变到较大(小)视差值,并且跃变的绝对值,表明前一像素点的视差值为背景像素点的视差值,当前像素点的视差值为前景像素点的视差值,将前景像素点的视差值修改为当前像素点的视差值并输出,其余情况保持不变,初始前景像素点的视差值为每一行的第一个像素点视差值,并以数据流的方式输出前景像素点视差值ForgroucLM到填充空洞模块;同时如果检测的视差值不为空洞点,输出该视差值,如果为空洞点,则用前一像素点的视差值填充,如果前一像素点为空洞点,则用其填充的视差值填充,得到不含空洞的视差值Noholes_M,并以数据流的方式输出到填充空洞模块;将像素点的前景像素点视差值Forgroud_M与不含空洞的视差值Noholes_M进行差值,得到差值D_M,并以数据流的方式输出到填充空洞模块;标记空洞模块对输入的视差值进行检测,当检测到连续空洞点的个数大于等于设定的个数时,将该连续空洞点各点位置标记为2,当检测到连续空洞点的个数小于设定的个数时,将该连续空洞点各点位置标记为1,本文档来自技高网
...

【技术保护点】
一种基于视差图的空洞填充装置,其特征在于,包括:一配置寄存器单元,用于存储检测跃变时的阈值,以区分前景像素点和背景像素点,存储较大空洞膨胀的像素点的个数;一存储模块,用于存储空洞填充需要的参考图像以及输出的目标图像;一检测跃变模块,用于检测像素点视差值的跃变;一标记空洞模块,用于标记空洞;如果目标图像是左视图,则视差图的视差值从右到左、如果目标图像是右视图,则视差图的视差值从左到右逐行逐像素点以数据流方式输入检测跃变模块和标记空洞模块中;配制寄存器单元的跃变阈值送入检测跃变模块中,检测跃变模块对输入的视差值的跃变进行检测,对于左(右)视图来说,如果在非空洞点处,跃变是较小(大)视差值跃变到较大(小)视差值,并且跃变的绝对值大于跃变阈值时,表明前一像素点的视差值为背景像素点的视差值,当前像素点的视差值为前景像素点的视差值,将前景像素点的视差值修改为当前像素点的视差值并输出,其余情况保持不变,初始前景像素点的视差值为每一行的第一个像素点视差值,并以数据流的方式输出前景像素点视差值Forgroud_M到填充空洞模块;同时如果检测的视差值不为空洞点,输出该视差值,如果为空洞点,则用前一像素点的视差值填充,如果前一像素点为空洞点,则用其填充的视差值填充,得到不含空洞的视差值Noholes_M,并以数据流的方式输出到填充空洞模块;将像素点的前景像素点视差值Forgroud_M与不含空洞的视差值Noholes_M进行差值,得到差值D_M,并以数据流的方式输出到填充空洞模块;标记空洞模块对输入的视差值进行检测,当检测到连续空洞点的个数大于等于设定的个数时,将该连续空洞点各点位置标记为2,当检测到连续空洞点的个数小于设定的个数时,将该连续空洞点各点位置标记为1,如果检测到的是非空洞点,则将该非空洞点标记为0,标记空洞模块将空洞标记以数据以数据流的方式输出到填充空洞模块;填充空洞模块,用于根据标记空洞模块的空洞标记区分大小空洞以及像素 点的前景像素点视差值Forgroud_M、不含空洞的视差值Noholes_M和差值D_M进行空洞填充:像素点空洞标记若值为0,则不需要填充空洞,将该像素点不含空洞的视差值Noholes_M值赋给该像素点;像素点空洞标记若值为1,则表明是较小空洞,需要根据视差图的视差值判断,该较小空洞之后的非空洞点,并用该非空洞点视差值来填充,即对左(右)视图来说,该较小空洞左(右)边的非空洞点视差值来填充;像素点空洞标记若值为2,则表明是较大空洞,需要根据差值D_M判断,如果该值的绝对值大于设定的跃变阈值,表示该较大空洞右边缘(对左视图)或左边缘(对于右视图)第一个非空像素点为背景像素点,此时前景像素点视差值foreground_M记录了与之最近的前景像素点的视差值,用前景像素点视差值foreground_M填充该像素点,如果差值D_M的绝对值不大于设定的跃变阈值即没有跃变,则表明该空洞右边缘(对于左视图)或左边缘(对于右视图)第一个非空像素点为前景像素点,用noholes_M的值来填充该像素点;一膨胀较大空洞模块,对填充模块填充后的视差值进行处理,用填充较大空洞的视差值来代替该较大空洞边缘的背景像素点的视差值即进行膨胀,膨胀后的视差值,构成目标图像对应的没有空洞和消除匹配误差后的新的视差图M2;一像素拷贝模块,用于生成目标图像,根据目标图像像素点的坐标以及视差图M2中对应的视差值,通过逆向映射从存储模块存储的参考图像中拷贝相应的像素点来生成目标图像,并输出到存储模块中;由于检测跃变模块、标记空洞模块都需要根据当前像素点以及之后的像素点视差值来确定当前像素点的跃变情况以及空洞标记值,因此输出都有一定的延迟,但只要两个模块的输出延迟相同,则能保证像素点的对应性。...

【技术特征摘要】
1.一种基于视差图的空洞填充装置,其特征在于,包括一配置寄存器单元,用于存储检测跃变时的阈值,以区分前景像素点和背景像素点,存储较大空洞膨胀的像素点的个数;一存储模块,用于存储空洞填充需要的参考图像以及输出的目标图像;一检测跃变模块,用于检测像素点视差值的跃变;一标记空洞模块,用于标记空洞;如果目标图像是左视图,则视差图的视差值从右到左、如果目标图像是右视图,则视差图的视差值从左到右逐行逐像素点以数据流方式输入检测跃变模块和标记空洞模块中; 配制寄存器单元的跃变阈值送入检测跃变模块中,检测跃变模块对输入的视差值的跃变进行检测,对于左(右)视图来说,如果在非空洞点处,跃变是较小(大)视差值跃变到较大 (小)视差值,并且跃变的绝对值大于跃变阈值时,表明前一像素点的视差值为背景像素点的视差值,当前像素点的视差值为前景像素点的视差值,将前景像素点的视差值修改为当前像素点的视差值并输出,其余情况保持不变,初始前景像素点的视差值为每一行的第一个像素点视差值,并以数据流的方式输出前景像素点视差值ForgroucLM到填充空洞模块; 同时如果检测的视差值不为空洞点,输出该视差值,如果为空洞点,则用前一像素点的视差值填充,如果前一像素点为空洞点,则用其填充的视差值填充,得到不含空洞的视差值 Noholes_M,并以数据流的方式输出到填充空洞模块;将像素点的前景像素点视差值Forgroud_M与不含空洞的视差值Noholes_M进行差值, 得到差值D_M,并以数据流的方式输出到填充空洞模块;标记空洞模块对输入的视差值进行检测,当检测到连续空洞点的个数大于等于设定的个数时,将该连续空洞点各点位置标记为·2,当检测到连续空洞点的个数小于设定的个数时,将该连续空洞点各点位置标记为1,如果检测到的是非空洞点,则将该非空洞点标记为 O,标记空洞模块将空洞标记以数据以数据流的方式输出到填充空洞模块;填充空洞模块,用于...

【专利技术属性】
技术研发人员:刘然田逢春巫英坚谢辉谭迎春谭伟敏李博乐邰国钦陈恒鑫葛亮甘平黄扬帆周庆叶莲
申请(专利权)人:四川虹微技术有限公司重庆大学
类型:发明
国别省市:

网友询问留言 已有1条评论
  • 来自[北京市联通互联网数据中心] 2014年12月06日 01:52
    科学家在宇宙中发现了三大空洞直径达10亿光年在这个空洞中没有恒星没有行星没有星云及星际气体甚至连暗物质都很难探测到更奇怪的是这个区域的宇宙微波背景辐射温度也低通常情况下宇宙的背景微波通过宇宙空间时会获得一定的能量温度会有所升高
    0
1