发明名称 一种DIBR目标图像空洞填充修复处理方法
摘要 本发明提供了一种DIBR目标图像空洞填充修复处理方法,其针对左、右两侧中至少一侧相邻的非空像素点为背景像素点的“大空洞”采用了多次局部修复的特殊空洞填充修复方式,在每次进行局部修复的过程中,先通过优先级对比保证了被选定的待修补区块在背景像素分布、梯度、深度分布等方面具备更显著的参数特征,而后在通过基于SSD准则的匹配系数考量像素RGB值以及深度值的关联性来搜索匹配区块时,其搜索的目标性更强、匹配准确性更高,能够较好的保持前景物体的轮廓,避免在前景物体边缘出现伪像重叠失真现象,保证了空洞填充修复纹理的正确传播,大大减少了空洞填充修复区域与背景图像错位、断节、纹理错乱等不符合视觉心理的修复缺陷。
申请公布号 CN103369342A 申请公布日期 2013.10.23
申请号 CN201310337601.7 申请日期 2013.08.05
申请人 重庆大学 发明人 刘然;田逢春;谢辉;谭迎春;谭伟敏;李博乐;黄振伟;曹东华;邰国钦
分类号 H04N13/00(2006.01)I;G06T15/00(2011.01)I 主分类号 H04N13/00(2006.01)I
代理机构 重庆博凯知识产权代理有限公司 50212 代理人 张先芸
主权项 1.一种DIBR目标图像空洞填充修复处理方法,其特征在于,包括如下步骤:A)获取作为修复处理对象的DIBR目标图像及其对应的深度图像,并预先设定像素跨度阈值L<sub>big</sub>、区块行像素尺寸参数m和区块列像素尺寸参数n;B)通过对DIBR目标图像中空洞像素点的识别,检测出DIBR目标图像中的各个空洞,并记录每个空洞的横向像素最大跨度,并将所述各个空洞的横向像素最大跨度与预设的像素跨度阈值L<sub>big</sub>进行比较,将横向像素最大跨度小于像素跨度阈值L<sub>big</sub>的空洞标记为第a类空洞,将横向像素最大跨度大于或等于像素跨度阈值L<sub>big</sub>的空洞标记为第b类空洞;C)通过对DIBR目标图像进行前景和背景识别,判断每个第b类空洞左、右两侧相邻的非空像素点是否为前景像素点;若存在左、右两侧相邻的非空像素点均为前景像素点的第b类空洞,将之标记为第b1类空洞;将左、右两侧相邻的非空像素点中至少一侧为背景像素点的第b类空洞和位于DIBR目标图像边界上的第b类空洞均标记为第b2类空洞;D)对于第a类空洞,采用既有的空洞填充方法进行填充修复处理;对于第b1类空洞,采用基于视差图的空洞填充方法进行填充修复处理;对于第b2类空洞,分别对每个第b2类空洞按如下步骤Da)~Dd)所述方式进行填充修复处理:Da)确定该第b2类空洞当前的待修补区块;该步骤具体包括:da1)对该第b2类空洞重新进行空洞区域边缘识别,将与该第b2类空洞当前空洞区域边缘相邻的各非空像素点标记为轮廓像素点,从而由当前标记的各个轮廓像素点相连构成该第b2类空洞当前的非空像素轮廓;da2)确定当前标记的各个轮廓像素点的优先级;其中,当前标记的任意一个轮廓像素点p的优先级P(p)确定为:P(p)=C(p)·[r+s·DA(p)+t·DE(p)];其中,优先级系数r、s、t均为常数,且s≥r≥t&gt;0;C(p)表示轮廓像素点p的背景置信度系数,且:<img file="FDA00003623214300011.GIF" wi="433" he="150" /><img file="FDA00003623214300012.GIF" wi="76" he="62" />表示以轮廓像素点p为中心的像素尺寸为m行n列的区块;<img file="FDA00003623214300013.GIF" wi="210" he="70" />表示区块<img file="FDA00003623214300014.GIF" wi="81" he="62" />中所包含的像素点总数;<img file="FDA00003623214300015.GIF" wi="244" he="79" />表示区块<img file="FDA00003623214300016.GIF" wi="72" he="62" />中所包含的背景像素点数;DA(p)表示轮廓像素点p的边缘系数,且:<maths num="0001"><![CDATA[<math><mrow><mi>DA</mi><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>n</mi><mi>p</mi></msub><mo>&times;</mo><msup><mrow><mo>(</mo><msub><mrow><mo>&dtri;</mo><mi>I</mi></mrow><mi>p</mi></msub><mo>)</mo></mrow><mo>&perp;</mo></msup><mo>;</mo></mrow></math>]]></maths>n<sub>p</sub>表示该第b2类空洞当前的非空像素轮廓在轮廓像素点p位置处的法线方向矢量;<img file="FDA00003623214300022.GIF" wi="155" he="76" />表示该第b2类空洞当前的非空像素轮廓在轮廓像素点p位置处的等照度方向矢量;DE(p)表示轮廓像素点p的深度系数,且:<img file="FDA00003623214300023.GIF" wi="764" he="149" />d<sub>max</sub>表示DIBR目标图像对应的深度图像中的最大深度值;<img file="FDA00003623214300024.GIF" wi="246" he="74" />表示区块<img file="FDA00003623214300025.GIF" wi="72" he="62" />中的非空像素区域,p<sub>un</sub>表示非空像素区域<img file="FDA00003623214300026.GIF" wi="242" he="70" />中的非空像素点,即<img file="FDA00003623214300027.GIF" wi="389" he="79" />Dep(p<sub>un</sub>)表示非空像素区域<img file="FDA00003623214300028.GIF" wi="246" he="77" />中的非空像素点p<sub>un</sub>在深度图像中对应的深度值;<img file="FDA00003623214300029.GIF" wi="210" he="70" />表示区块<img file="FDA000036232143000210.GIF" wi="70" he="62" />中所包含的像素点总数;优先级P(p)的值越大,表示轮廓像素点p的优先级越高;da3)比较当前标记的各个轮廓像素点的优先级;若其中优先级最高的轮廓像素点只有一个,将该优先级最高的轮廓像素点标记为待修补目标p<sub>st</sub>;若其中优先级最高的轮廓像素点有多个,则选择一个优先级最高的轮廓像素点标记为待修补目标p<sub>st</sub>;da4)将以所述待修补目标p<sub>st</sub>为中心的像素尺寸为m行n列的区块作为当前的待修补区块<img file="FDA000036232143000211.GIF" wi="135" he="63" />Db)在DIBR目标图像中搜索与当前的待修补区块<img file="FDA000036232143000212.GIF" wi="92" he="62" />最匹配的像素尺寸为m行n列的区块作为匹配区块<img file="FDA000036232143000213.GIF" wi="167" he="63" /><img file="FDA000036232143000214.GIF" wi="1074" he="116" /><img file="FDA000036232143000215.GIF" wi="1101" he="80" />其中,I表示DIBR目标图像,<img file="FDA000036232143000216.GIF" wi="74" he="71" />表示在DIBR目标图像中的任意一个不同于当前待修补区块<img file="FDA000036232143000217.GIF" wi="92" he="61" />的像素尺寸为m行n列的区块;<img file="FDA000036232143000218.GIF" wi="232" he="73" />表示区块<img file="FDA000036232143000219.GIF" wi="64" he="56" />与当前的待修补区块<img file="FDA000036232143000220.GIF" wi="99" he="63" />的匹配系数,匹配系数<img file="FDA000036232143000221.GIF" wi="244" he="77" />的值越小,表示区块<img file="FDA000036232143000222.GIF" wi="62" he="60" />与当前的待修补区块<img file="FDA000036232143000223.GIF" wi="96" he="70" />越匹配;<img file="FDA000036232143000224.GIF" wi="359" he="78" />表示区块<img file="FDA000036232143000225.GIF" wi="62" he="58" />与当前的待修补区块<img file="FDA000036232143000226.GIF" wi="92" he="63" />中各对应像素点RGB值的平方差之和,即:<img file="FDA000036232143000227.GIF" wi="1253" he="144" /><img file="FDA00003623214300031.GIF" wi="280" he="75" />表示当前的待修补区块<img file="FDA00003623214300032.GIF" wi="94" he="70" />中第i行第j列位置上像素点的RGB值,<img file="FDA00003623214300033.GIF" wi="240" he="66" />表示区块<img file="FDA00003623214300034.GIF" wi="68" he="63" />中第i行第j列位置上像素点的RGB值;i∈{1,2,…,m},j∈{1,2,…,n};<img file="FDA00003623214300035.GIF" wi="354" he="80" />表示区块<img file="FDA00003623214300036.GIF" wi="58" he="58" />与当前的待修补区块<img file="FDA00003623214300037.GIF" wi="92" he="65" />中各对应像素点深度值的平方差之和,即:<img file="FDA00003623214300038.GIF" wi="1220" he="143" /><img file="FDA00003623214300039.GIF" wi="257" he="83" />表示当前的待修补区块<img file="FDA000036232143000310.GIF" wi="100" he="63" />中第i行第j列位置上像素点的深度值,<img file="FDA000036232143000311.GIF" wi="228" he="77" />表示区块<img file="FDA000036232143000312.GIF" wi="72" he="71" />中第i行第j列位置上像素点的深度值;i∈{1,2,…,m},j∈{1,2,…,n};Dc)搜索匹配区块<img file="FDA000036232143000313.GIF" wi="134" he="63" />中与当前的待修补区块<img file="FDA000036232143000314.GIF" wi="92" he="63" />中空洞像素点位置相对应的背景像素点,用以分别填充当前的待修补区块<img file="FDA000036232143000315.GIF" wi="100" he="63" />中对应位置的空洞像素点,并以匹配区块<img file="FDA000036232143000316.GIF" wi="142" he="71" />中每个用于填充的背景像素点的深度值分别更新其填充的当前待修补区块<img file="FDA000036232143000317.GIF" wi="90" he="63" />中的空洞像素点在深度图像中的深度值;Dd)判断该第b2类空洞是否已被完全填充,若否,则重复步骤Da)~Dc);直至该第b2类空洞中的所有空洞像素点被完全填充,则对该第b2类空洞的填充修复处理完成。
地址 400044 重庆市沙坪坝区沙正街174号