随机点立体图的抗锯齿

时间:2018-01-21 01:31:18

标签: python image algorithm antialiasing stereoscopy

我最近完成了一些Python(2.7)代码,用于生成基于this paper的随机点立体图。输出相当不错,但我注意到,即使深度图中的平滑渐变,输出立体图也缺少这些平滑的渐变,而是具有不同的深度级别。我相信这是由于生成图像时选择的DPI。虽然通过增加DPI可以增加深度的细节,但随着收敛点变得更难以达到,这变得不切实际。

以下是两个例子。首先是75 DPI,第二是175 DPI。在75 DPI图像上,可以看到不同的深度“三角形”。在175 DPI图像中,这些不太明显,但图像底部的引导点更远,因此观看3D图像更加困难。

75 DPI example 175 DPI example

我希望修改我当前的代码以对3D图像进行抗锯齿处理,以便在DPI较低的情况下平滑渐变。我尝试在深度图和图案上使用SSAA并生成立体图,然后使用抗锯齿滤镜再次缩小图像尺寸。然而,这似乎只包含图像左侧的立体图。例如,如果我将图像放大4倍,立体图仅限于图像的左手四分之一。其余的只是随机噪音,无法查看。我如何对立体图中隐藏的图像进行抗锯齿处理?我的代码几乎与the paper中描述的算法相同,因此基于此的抗锯齿算法将是完美的。

1 个答案:

答案 0 :(得分:0)

由于没有扩展same数组以反映更大的深度图,我所遇到的问题的解决方案是立体图包含在图像的左侧。这导致超出深度图的原始长度的所有内容都是随机生成的噪声。

解决了这个问题之后,出现了第二个问题,即3D图像因抗锯齿而失真,导致比解决时更多的梯度问题。我的解决方案是增加代码中的DPI设置。例如,如果我将深度图的大小增加4倍,则必须使用4倍大的DPI(300,而不是75)生成立体图。当再次缩小时,这产生了极好的结果。

2x SSAA

此图像使用2x SSAA,使得渐变与问题中的175DPI图像相当,但会聚点更容易。

4x SSAA

此图像使用4x SSAA,我发现锯齿几乎看不到。这里的噪音变得更加模糊,图像的一般颜色变得非常灰暗。我发现这种效果可以通过预先生成噪声并按相同的AA因子进行缩放来避免。这将在下一张图片中进行演示。

4x SSAA with pre-generated noise