我知道艺术家将如何手工制作无缝纹理,但是计算机程序如何使该过程自动化?像PixPlant这样的软件可以做到这一点,但我不知道它是如何做到的。

评论

我不知道该工具使用了什么,但是一种方法可能是使用接缝雕刻。例如,通过快速的互联网搜索,即可找到此项目报告:inst.eecs.berkeley.edu/~cs194-26/fa15/upload/files / ...另一种可能性是通过纹理合成来构建纹理。

那看起来是一个非常有趣的报告。我一定要检查一下。

#1 楼

对于这些类型的算法,通常必须依靠多种形式的纹理合成。这并不意味着您必须从头开始生成整个纹理。例如,您可以重新生成纹理的侧面以获得无缝效果。这个答案可能不完整,因为它的领域很大,根据输入的图像,不同的方法会产生不同的效果。

边缘的天真模糊

作为艺术家,制作无缝纹理的方法是在两个方向上偏移图像。然后,可以模糊边缘。



这个例子不是最好的,但是对于某些纹理类型的结果,您可以获得不错的结果。

或者,您可以在此处通过将图像与其自身重叠,然后取两张图像之间的差值,在边缘上进行最小切割。

最小切割算法

最受欢迎的算法之一是图像缝。其背后的想法是将纹理分成许多小块。通过首先从全部补丁集中随机选择一个补丁子集,然后在将补丁与其相邻补丁重叠时,选择误差最小的一个子集来填充纹理。然后,您可以沿重叠区域执行最小切割。

我对这种算法的经验是,它对许多具有圆形细节的纹理效果很好。例如,如果纹理是草,则其性能可能会很差。每个补丁重叠的数量也对质量有很大影响。重叠越大,匹配越好,但是重复的可能性就越大。另外,如果候选补丁的子集太大,那么您将得到重复。否则,您可能找不到合适的匹配项。

此算法的扩展包括PatchMatch(已在Photoshop中使用)。

渐变校正

处理无缝纹理的另一种方法是删除渐变。如果您分解图像并使用前景和背景对象的各个部分,则泊松图像编辑可以提供帮助。

一种更简单的方法是创建纹理的低频(例如,mipmap)然后删除图像的渐变。当然,高频数据不是无缝的,但是您可以使用其他算法将其删除。

计算机视觉方法

您还可以使用各种计算机视觉方法。这里的想法是,当您尝试平铺纹理时,您可以保持重要的特征不变。例如,如果图片边缘上有一块带有岩石的污垢纹理,则使用各种特征检测器(例如高斯差分)可以帮助您识别该岩石并在进行平铺之前将其除去。您可能需要填充去除岩石的其余纹理,但这可能有助于使图像更加无缝。

其他参考文献


图像缝和PatchMatch高级说明
梯度域合成


评论


$ \ begingroup $
不错的调查。 Alexei Efros在他的计算摄影课程中也有一些关于图像融合的幻灯片。他提到了经典的Burt-Adelson拉普拉斯金字塔融合方法,以及梯度域方法和图割方法。
$ \ endgroup $
–user106
17年7月10日在6:02



$ \ begingroup $
这是一个很好的答案,很高兴您花时间研究了多种算法,而不仅仅是一种。我将确保查看这些链接。
$ \ endgroup $
–丹尼尔·卡瑞(Daniel Kareh)
17年7月10日在14:40