基于纹理块连贯性的纹理合成技术

时间:2022-07-19 12:30:56

基于纹理块连贯性的纹理合成技术

摘要:纹理合成是当前计算机图形学、计算机视觉和图像处理领域的研究热点之一。文章对基于样图的二维纹理合成技术进行了研究,有机结合了前人的一些观点,在此基础上提出了一种新的算法:在Efros和Liang提出的块拼接纹理合成算法的基础上融入Ashikhmin提出的基于位置相对性的合成技术,并加入与视觉相关的权值,得到了很好的视觉效果。

关键词:纹理合成;纹理连贯性;MRF模型;块拼接

0 引言

纹理映射是绘制复杂场景真实感图形最为常用的技术,但由于采样区域的局限,所获取的纹理样本通常为小块纹理,若将小块纹理直接映射到大的曲面上,它将导致映射后表面纹理模糊不清,若采用重复映射技术,则可能出现表面纹理接缝走样等问题。

基于样图的纹理合成,是近几年迅速发展起来的一种新的纹理合成技术。它基于给定的小区域纹理样本,按照表面的几何形状,拼合生成整个曲面的纹理,纹理在视觉上是相似而连续的。基于样图的纹理合成技术不仅可以克服传统纹理映射方法的缺点,而且避免了过程纹理合成调整参数的繁琐,因而受到越来越多的研究人员的关注,成为计算机图形学、计算机视觉和图像处理领域的研究热点之一。本文的算法就是基于Ashi-khmin提出的基于位置相对性的合成技术和Efros和Liang同时分别提出的基于MRF模型和块拼接的纹理合成算法。

早期纹理合成技术有金字塔模型、多分辨率模型、MRF模型、层次法表示等,但效果均不太理想。在1999年的ICCV会议上,Efros基于MRF模型,提出了以邻近点相关为基本准则的非参数采样合成算法,取得了很好的合成效果。紧接着,在2000年的SIGGRAPH会议上,Wei和Levoy提出了一种改进的算法:邻域改为L形状,而非矩形。这种改进大大减小了计算量,加快了合成速度。在2001年,Ashikhmin利用相关性原理,根据位置的相对关系,在待选点中寻找最佳匹配点,这种方法对绝大多数的自然纹理合成都能取得很好的效果,而且速度比文献[11]还要快;同样是2001年,Efros和Liang同时分别提出了基于MRF模型和块拼接的纹理合成算法,在纹理的合成质量和合成速度上比以前的算法都有显著提升。这些使得纹理合成技术发展到了一个新的高度。

本文提出了一种新的纹理合成算法。算法思想与文献[2-3]类似,但加入了文献[1]的特点,在搜索匹配块时采用了新的搜索规则,加速了匹配过程;同时在边界重叠区的匹配误差计算时采用了与视觉相关的权值,使合成结果更符合视觉要求。

1 相关工作

在2001年,Ashikhmin提出了一种新的简单有效的搜索匹配方法,该方法对于合成自然纹理有着非常理想的效果。与Wei和Levoy的算法在整个样本图中搜索匹配点不同,Ashikhmin利用相关性原理,根据输出图像中当前点的L邻域中的点(如图1输出图像所示),找到与其匹配的输入图像中对应点的位置(如图1中的箭头所指点),然后偏移相应量后获得待选点(如图1输入图像中的黑块)。以输出图像中当前点P的右上角邻点A为例,A是已合成的点,其在输入图像中的匹配位置为A′,由于输出图像中,当前点P与A在x方向相差-1,在y方向相差1,即P=A+(-1,1),对应地,在样本图中,待选点A″由A′+(-1,1)获得。其它待选点的计算类似。图1中输入图像中的黑点为当前点P的所有待选点,比较各待选点与P点的L邻域的误差,选取误差最小的点作为P点的匹配点。

在2001年的SIGGRAPH会议上,Efros提出一种基于块拼接的纹理合成算法。比起以往的算法,该算法使用纹理块作为纹理合成的单元,这是在文献[10]基础上的一个拓展。该算法在纹理合成的时间、合成纹理的视觉效果方面都得到了很大的提高,避免了以往的算法容易引起的模糊,纹元错位严重等问题。如图2所示,该方法按扫描线顺序从左至右、从上至下逐块合成纹理(图2演示了合成顺序),其中阴影块为当前待合成纹理块,其他正方形块为已合成纹理块,红色轮廓线区域不仅是当前待合成纹理块的边界,而且也是与已合成部分的重叠区域。在合成过程中,所谓重叠区域匹配是指重叠区域的误差小于某给定的阀值。重叠区域的误差指它们重叠区域中对应像素的RGB值误差之和。这里RGB值误差定义为它们间的L2距离。例如,N1,N2若为重叠区域,则它们的误差为:其中函数R(pixel),G(pixel),B(pixel)分别表示纹理图像的红、绿、蓝三原色。

为了使重叠区域平滑过渡,文章还提出了裁剪线的概念。在匹配的重叠区域每一行中,找到偏差最小的像素点,由这些像素点就构成了裁剪线。如图3所示,把裁剪线作为B2的边缘,把B2贴入合成图中,反复重复以上过程,就获得了合成纹理图。此算法虽然简单,但合成效果很好。该算法存在的问题是有时纹理出现过多的重复,有些边界不匹配。

2 本文的算法

Ashikhmin巧妙地运用了如下事实:对当前待合成点的邻域内的已知点在样本图中的匹配点做相应的平移变换可导出当前待合成的点。这种性质可称之为“纹理的连贯性”。Efros和Liang提出的块拼接合成算法中,没有利用这个性质。同时,由于L2距离并不是衡量两个纹理块之间视觉相似性的最好的手段,我们根据人的视觉系统对图像中颜色变化尖锐的地方反应敏感,对颜色变化平缓的地方反应较为迟钝的特点,对L(sub)2(/sub)距离给出了相应的视觉权值,进一步提高了合成效果。本文基于[1―2]提出了一种新的纹理合成算法,它有以下特点:

(1)根据当前待合成纹理块的L邻域(将Wei中像素的L邻域概念中的像素推广成像素块)内的已合成纹理块在样本图中的位置找到相应的待选纹理块(类似文献[1]方法),将待选块先进行匹配检查,加速匹配搜索。

(2)采用部分的MRF模型。如果搜索过程中找到边界误差小于阀值的纹理块,则马上停止搜索,将其作为当前待合成纹理块;如果没有发现误差小于阀值的纹理块,则采用MRF模型,得到当前待合成纹理块。

(3)在计算两个纹理块边界重迭区的误差时,引入与视觉相关的权值,使合成结果更符合视觉特性。

本文算法可简述如下:首先确定当前要合成的纹理块,确定其L邻域,根据L邻域中已合成纹理块的位置搜索记录匹配纹理块位置的数组,找到匹配块,偏移相应位置后,得到当前待选纹理块。然后比较待选纹理块的边界匹配误差,如果误差小于给定阀值,则直接选择它作为当前待合成纹理块;否则搜索整个样本图中的纹理块,直到找到边界误差小于阀值的纹理块,或者根据边界误差最小的纹理块“估计”匹配纹理块。同时在计算误差的时候加入视觉相关的权值。

上一篇:嵌入式工作流引擎的设计与应用 下一篇:PS课程的模块化与案例化教学方法探讨