发明名称 一种基于可分级块的虚拟视点图像绘制方法
摘要 本发明公开了一种基于可分级块的虚拟视点图像绘制方法,优点在于根据参考视点的深度图像的平滑与否自适应地将彩色图像划分成若干个尺寸大小不尽相同的块,对于整块映射型块只需对该块中的一个像素点实施三维图像变换以确定将该像素点从彩色图像投影到虚拟视点彩色图像的坐标映射关系,然后整个块采用此坐标映射关系投影到虚拟视点彩色图像中,由于只对一个像素点实施三维图像变换,因而可有效提高整块映射型块的绘制速度;对于逐像素映射型块,由于这些块主要位于对象与背景的边界区域,因此仍采用逐像素映射的三维图像变换方法将块中的各个像素点映射到虚拟视点彩色图像中,有效保证了绘制精度。
申请公布号 CN101695139B 申请公布日期 2011.08.17
申请号 CN200910153324.8 申请日期 2009.10.14
申请人 宁波大学 发明人 蒋刚毅;朱波;郁梅
分类号 H04N13/00(2006.01)I;H04N15/00(2006.01)I;G06T15/00(2006.01)I 主分类号 H04N13/00(2006.01)I
代理机构 宁波奥圣专利代理事务所(普通合伙) 33226 代理人 程晓明
主权项 1.一种基于可分级块的虚拟视点图像绘制方法,其特征在于包括以下具体步骤:①获取t时刻的K个参考视点的尺寸大小为P×Q的K幅彩色图像及其对应的K幅深度图像,将t时刻的第k个参考视点的彩色图像记为<img file="FSB00000515592400011.GIF" wi="84" he="64" />将t时刻的第k个参考视点的深度图像记为<img file="FSB00000515592400012.GIF" wi="100" he="65" />将t时刻的第k个参考视点的彩色图像<img file="FSB00000515592400013.GIF" wi="61" he="65" />自适应地划分成<img file="FSB00000515592400014.GIF" wi="57" he="60" />个尺寸大小为(p+Δp)×(q+Δq)的块,并标记各个块的块映射类型,块映射类型包括逐像素映射型和整块映射型,记t时刻的第k个参考视点的彩色图像<img file="FSB00000515592400015.GIF" wi="61" he="65" />中的第n个块为<img file="FSB00000515592400016.GIF" wi="75" he="61" />其中,k∈[1,K],<img file="FSB00000515592400017.GIF" wi="241" he="69" /><img file="FSB00000515592400018.GIF" wi="250" he="132" />p和q的值均为16、8、4、2、1五个值中的一个,Δp表示块<img file="FSB00000515592400019.GIF" wi="50" he="60" />与其右相邻块之间重叠的像素点的列数,0≤Δp≤2,当Δp=0时表示块<img file="FSB000005155924000110.GIF" wi="49" he="59" />与其右相邻块不重叠或表示块<img file="FSB000005155924000111.GIF" wi="50" he="60" />为t时刻的第k个参考视点的彩色图像<img file="FSB000005155924000112.GIF" wi="59" he="63" />的右边界处的块,Δq表示块<img file="FSB000005155924000113.GIF" wi="50" he="59" />与其下相邻块之间重叠的像素点的行数,0≤Δq ≤2,当Δq=0时表示块<img file="FSB000005155924000114.GIF" wi="50" he="60" />与其下相邻块不重叠或表示块<img file="FSB000005155924000115.GIF" wi="51" he="60" />为t时刻的第k个参考视点的彩色图像<img file="FSB000005155924000116.GIF" wi="59" he="64" />的下边界处的块;此处,将t时刻的第k个参考视点的彩色图像<img file="FSB000005155924000117.GIF" wi="58" he="64" />自适应地划分成<img file="FSB000005155924000118.GIF" wi="56" he="59" />个尺寸大小为(p+Δp)×(q+Δq)的块并标记各个块的块映射类型的具体步骤为:①-1、将t时刻的第k个参考视点的深度图像<img file="FSB000005155924000119.GIF" wi="71" he="64" />划分成<img file="FSB000005155924000120.GIF" wi="148" he="108" />个互不重叠的16×16块,其中,P表示深度图像的宽,Q表示深度图像的高;①-2、定义当前正在处理的16×16块为当前16×16块,将当前16×16块记为n<sub>i</sub>×n<sub>i</sub>块,或将当前16×16块分解为4个8×8块,将4个8×8块均记为n<sub>i</sub>×n<sub>i</sub>块,其中,i的初始值为1;①-3、定义当前正在处理的n<sub>i</sub>×n<sub>i</sub>块为当前n<sub>i</sub>×n<sub>i</sub>块,计算当前n<sub>i</sub>×n<sub>i</sub>块的背离值,判断当前n<sub>i</sub>×n<sub>i</sub>块的背离值是否小于阈值,如果是,则将当前n<sub>i</sub>×n<sub>i</sub>块记为p×q块,p=n<sub>i</sub>,q=n<sub>i</sub>,并标记该p×q块的块映射类型为整块映射型,然后执行步骤①-10,否则,再判断n<sub>i</sub>是否等于预设尺寸值m,其中,m≤n<sub>1</sub>,当n<sub>i</sub>=m时,将当前n<sub>i</sub>×n<sub>i</sub>块记为p×q块,p=n<sub>i</sub>,q=n<sub>i</sub>,并标记该p×q块的块映射类型为逐像素映射型,然后执行步骤①-10,当n<sub>i</sub>>m时,继续执行;①-4、将当前n<sub>i</sub>×n<sub>i</sub>块分解成2个<img file="FSB00000515592400021.GIF" wi="124" he="96" />块,分别计算2个<img file="FSB00000515592400022.GIF" wi="126" he="97" />块的背离值,判断2个<img file="FSB00000515592400023.GIF" wi="123" he="96" />块的背离值是否均小于阈值,如果是,则将2个<img file="FSB00000515592400024.GIF" wi="125" he="96" />块分别记为p×q块,p=n<sub>i</sub>,<img file="FSB00000515592400025.GIF" wi="146" he="99" />并标记该2个p×q块的块映射类型为整块映射型,然后执行步骤①-10,否则,继续执行;①-5、对当前n<sub>i</sub>×n<sub>i</sub>块进行重新分解,分解成2个<img file="FSB00000515592400026.GIF" wi="120" he="96" />块,分别计算2个<img file="FSB00000515592400027.GIF" wi="118" he="97" />块的背离值,判断2个<img file="FSB00000515592400028.GIF" wi="118" he="97" />块的背离值是否均小于阈值,如果是,则将2个<img file="FSB00000515592400029.GIF" wi="118" he="97" />块分别记为p×q块,<img file="FSB000005155924000210.GIF" wi="159" he="117" />q=n<sub>i</sub>,并标记该2个p×q块的块映射类型为整块映射型,然后执行步骤①-10,否则,继续执行;①-6、当步骤①-4中的2个<img file="FSB000005155924000211.GIF" wi="124" he="96" />块中的其中一个块的背离值小于阈值时,将背离值小于阈值的<img file="FSB000005155924000212.GIF" wi="124" he="97" />块记为p×q块,p=n<sub>i</sub>,<img file="FSB000005155924000213.GIF" wi="145" he="97" />标记该p×q块的块映射类型为整块映射型,并将背离值大于等于阈值的<img file="FSB000005155924000214.GIF" wi="125" he="97" />块分解为2个<img file="FSB000005155924000215.GIF" wi="133" he="97" />块,然后执行步骤①-9;当2个<img file="FSB000005155924000216.GIF" wi="124" he="96" />块的背离值均大于等于阈值时,继续执行;①-7、当步骤①-5中的2个<img file="FSB000005155924000217.GIF" wi="119" he="97" />块中的其中一个块的背离值小于阈值时,将背离值小于阈值的<img file="FSB000005155924000218.GIF" wi="118" he="97" />块记为p×q块,<img file="FSB000005155924000219.GIF" wi="155" he="98" />q=n<sub>i</sub>,标记该p×q块的块映射类型为整块映射型,并将背离值大于等于阈值的<img file="FSB000005155924000220.GIF" wi="119" he="98" />块分解为2个<img file="FSB000005155924000221.GIF" wi="134" he="99" />块,然后执行步骤①-9;当2个<img file="FSB000005155924000222.GIF" wi="119" he="97" />块的背离值均大于等于阈值时,继续执行;①-8、对当前n<sub>i</sub>×n<sub>i</sub>块进行重新分解,分解成4个<img file="FSB000005155924000223.GIF" wi="134" he="98" />块,并继续执行;①-9、将i加1,然后将步骤①-6或步骤①-7或步骤①-8得到的各个<img file="FSB000005155924000224.GIF" wi="133" he="97" />块记为<img file="FSB00000515592400031.GIF" wi="188" he="99" />块,令<img file="FSB00000515592400032.GIF" wi="183" he="99" />再返回步骤①-3继续执行,直至当前n<sub>i</sub>×n<sub>i</sub>块已分解为尺寸大小为预设尺寸值m的块或分解得到的块的背离值小于阈值为止;①-10、将当前16×16块中的下一个n<sub>i</sub>×n<sub>i</sub>块作为当前n<sub>i</sub>×n<sub>i</sub>块,并将i值置为1,然后返回步骤①-3继续执行,直至当前16×16块中的所有n<sub>i</sub>×n<sub>i</sub>块处理完毕;①-11、将下一个16×16块作为当前16×16块,并返回步骤①-2继续执行,直至t时刻的第k个参考视点的深度图像<img file="FSB00000515592400033.GIF" wi="75" he="64" />中的所有16×16块处理完毕;①-12、根据t时刻的第k个参考视点的深度图像<img file="FSB00000515592400034.GIF" wi="74" he="63" />的p×q块的划分及各个p×q块标记的块映射类型,将t时刻的第k个参考视点的彩色图像<img file="FSB00000515592400035.GIF" wi="59" he="64" />划分成相应的尺寸大小为(p+Δp)×(q+Δq)的块,并标记相应的块映射类型,具体过程为:a.定义t时刻的第k个参考视点的深度图像<img file="FSB00000515592400036.GIF" wi="74" he="63" />中的第一个p×q块为当前p×q块,将t时刻的第k个参考视点的彩色图像<img file="FSB00000515592400037.GIF" wi="60" he="64" />中坐标位置与当前p×q块相同的对应块作为t时刻的第k个参考视点的彩色图像<img file="FSB00000515592400038.GIF" wi="60" he="65" />中的p×q块;b.将t时刻的第k个参考视点的彩色图像<img file="FSB00000515592400039.GIF" wi="60" he="64" />中的该p×q块向右扩展Δp个像素点且向下扩展Δq个像素点,形成t时刻的第k个参考视点的彩色图像<img file="FSB000005155924000310.GIF" wi="60" he="64" />中的尺寸大小为(p+Δp)×(q+Δq)的块;c.根据当前p×q块的块映射类型,将该尺寸大小为(p+Δp)×(q+Δq)的块的块映射类型标记为与当前p×q块的块映射类型相同的块映射类型;d.将t时刻的第k个参考视点的深度图像<img file="FSB000005155924000311.GIF" wi="74" he="65" />中的下一个p×q块作为当前p×q块,返回执行步骤a,直至t时刻的第k个参考视点的深度图像<img file="FSB000005155924000312.GIF" wi="74" he="65" />中的所有p×q块处理完毕;②逐一处理t时刻的第k个参考视点的彩色图像<img file="FSB000005155924000313.GIF" wi="59" he="64" />中的<img file="FSB000005155924000314.GIF" wi="59" he="59" />个尺寸大小为(p+Δp)×(q+Δq)的块,定义正在处理的t时刻的第k个参考视点的彩色图像<img file="FSB000005155924000315.GIF" wi="59" he="64" />中的第n个块<img file="FSB000005155924000316.GIF" wi="50" he="60" />为当前块<img file="FSB000005155924000317.GIF" wi="75" he="60" />记需绘制的虚拟视点彩色图像为<img file="FSB000005155924000318.GIF" wi="88" he="63" />当当前块<img file="FSB000005155924000319.GIF" wi="51" he="59" />的块映射类型为逐像素映射型时,利用t时刻的第k个参考视点的深度图像<img file="FSB000005155924000320.GIF" wi="76" he="63" />所提供的深度信息,采用将参考视点的彩色图像中的像素点重投影到实际的三维空间中,然后再将这些三维空间中的点投影到目标图像平面即虚拟视点图像平面上的方法,逐像素点计算当前块<img file="FSB00000515592400041.GIF" wi="51" he="60" />中的各个像素点在需绘制的虚拟视点彩色图像<img file="FSB00000515592400042.GIF" wi="63" he="64" />中的坐标位置,并将当前块<img file="FSB00000515592400043.GIF" wi="50" he="60" />中的各个像素点逐像素点地映射到需绘制的虚拟视点彩色图像<img file="FSB00000515592400044.GIF" wi="63" he="64" />中;当当前块<img file="FSB00000515592400045.GIF" wi="50" he="59" />的块映射类型为整块映射型时,选取当前块<img file="FSB00000515592400046.GIF" wi="50" he="58" />中的一个像素点,再利用t时刻的第k个参考视点的深度图像<img file="FSB00000515592400047.GIF" wi="74" he="64" />所提供的该像素点的深度信息,采用将参考视点的彩色图像中的像素点重投影到实际的三维空间中,然后再将这些三维空间中的点投影到目标图像平面即虚拟视点图像平面上的方法计算该像素点在需绘制的虚拟视点彩色图像<img file="FSB00000515592400048.GIF" wi="64" he="64" />中的坐标位置,得到把该像素点从t时刻的第k个参考视点的彩色图像<img file="FSB00000515592400049.GIF" wi="61" he="64" />映射到需绘制的虚拟视点彩色图像<img file="FSB000005155924000410.GIF" wi="62" he="63" />中的坐标映射关系,并利用该坐标映射关系将当前块<img file="FSB000005155924000411.GIF" wi="50" he="60" />中的各个像素点映射到需绘制的虚拟视点彩色图像<img file="FSB000005155924000412.GIF" wi="62" he="64" />中;③重复步骤②将t时刻的第k个参考视点的彩色图像<img file="FSB000005155924000413.GIF" wi="61" he="63" />中的所有块全部映射到需绘制的虚拟视点彩色图像<img file="FSB000005155924000414.GIF" wi="63" he="63" />中,得到由t时刻的第k个参考视点的彩色图像<img file="FSB000005155924000415.GIF" wi="59" he="64" />和t时刻的第k个参考视点的深度图像<img file="FSB000005155924000416.GIF" wi="75" he="64" />绘制成的虚拟视点彩色图像<img file="FSB000005155924000417.GIF" wi="87" he="64" />④重复步骤①~③直至得到由K个参考视点的彩色图像和其对应的深度图像分别绘制成的K幅虚拟视点彩色图像,K幅虚拟视点彩色图像用集合表示为<img file="FSB000005155924000418.GIF" wi="280" he="64" />⑤采用图像融合方法融合由K个参考视点的彩色图像和其对应的深度图像分别绘制得到的K幅虚拟视点彩色图像,得到融合后的虚拟视点彩色图像,记融合后的虚拟视点彩色图像为I′<sub>D,t</sub>,并对融合后的虚拟视点彩色图像I′<sub>D,t</sub>中的空洞像素点进行填补,得到最终的虚拟视点彩色图像,记最终的虚拟视点彩色图像为I<sub>D,t</sub>。
地址 315211 浙江省宁波市江北区风华路818号