【问题标题】:How to smooth a wide stepped bitmap?如何平滑宽阶梯位图?
【发布时间】:2020-11-09 22:19:29
【问题描述】:

我有具有不同高度和不同间距的步骤的 2D 数据。我想反转量化并重新创建原始表面的近似值。

Example of heavily stepped data, and desired smooth result

我不介意是否有伪影和形状变化,但我确实希望 C1 尽可能在表面上连续,并且新的量化应该产生相同的步进数据(可能有点有损,但这是理想的)

我尝试过三次插值和高斯模糊。它们要么具有过于局部的影响,要么破坏了原作中的细节。

理想情况下,无论是 1 像素宽的台阶还是 100 像素宽的台阶,一排台阶都应该产生一条直线。随后的不同大小的台阶应该产生一条平滑、连续的线。

实际上,我想将其用作 8 位浮动转换器以消除像 127...128 这样的单个强度步骤上的条带如果值的变化超过一个小的公差 (1?),那么它们应该保持为锐利的边缘.

一个想法是分离出相同值的岛屿,限制它们的边界高度并放松内部。这将移除台阶,但边界仍将是不连续渐变的折痕。

扩展固定边界的想法——我可以在值和梯度上放松——同时在图像上保持一组边界点的值固定。

我想知道是否有更好的角度来解决这个问题,或者之前有什么好的工作。

*** 更新 我尝试了双边平滑,但发现它在平滑半径与步长相差很大的区域留下了伪影。尽管 Bilateral 作为与范围无关的平滑计算的后处理可能很有用。

我尝试了一种反转的 mipmap 方法 - 没有用。

目前的最佳尝试是多方向二次高度估计 - 使用加权质量投票来选择在每个像素处使用的最佳方向。

【问题讨论】:

    标签: bitmap 2d antialiasing smoothing heightmap


    【解决方案1】:

    目前的最佳尝试是多方向二次高度估计 - 使用加权质量投票选出在每个像素处使用的最佳方向。

    速度很慢,但结果足够好。主要人工制品是在非常陡峭的边缘处锐化。可以在升级版本上运行,然后再次缩小到抗锯齿。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-04
      • 1970-01-01
      • 2021-10-11
      • 2018-01-03
      • 2010-09-17
      • 1970-01-01
      • 2016-05-06
      • 1970-01-01
      相关资源
      最近更新 更多