图像大小调整:什么是"过滤器"?

Eci*_*ana 7 graphics cg 2d image-scaling

我试图理解图像大小调整是如何工作的 - 请有人向我解释什么是"过滤器"有用吗?

  • 滤镜是否计算源像素对目标像素的贡献量?

  • 有像"盒子"和"高斯"这样的过滤器,但是有一个名为"bicubic"的过滤器吗?我在这里混合两个概念,一个是"卷积滤波器"和......?

  • 是否可以使用相同的过滤器进行放大和缩小?(看到这个示例代码真的很棒)

  • 首先在一个维度上拉伸图像然后在另一个维度中拉伸图像是否可取?

com*_*orm 8

在图像大小调整中,过滤器避免了称为混叠的现象.如果您尝试在没有滤镜的情况下调整大小,则锯齿通常表现为令人讨厌的像素化效果,在动画时尤为明显...

回答你的观点:

  • 过滤器会计算每个源像素对每个目标的贡献程度.要调整大小,您需要一个线性滤镜,这非常简单:滤镜可以看作是一个小的灰度图像; 有效地,您将滤波器置于与每个输出像素相对应的位置上,将每个邻近像素乘以该位置处的滤波器值,然后将它们相加以获得输出像素值.

  • 所有这些滤波器都是"卷积滤波器",因为卷积是上述操作的数学名称."盒子"过滤器字面上看起来像一个盒子 - 盒子中的每个像素都是相同的加权,而"高斯"过滤器是更圆的斑点,在边缘向羽化零.

  • 升级和降尺度最重要的是为滤镜选择合适的尺寸.简而言之,您希望根据输入和输出中具有最低分辨率的滤镜来缩放滤镜.第二个最重要的是避免坏的过滤器:"盒子"过滤器是你尝试在没有过滤的情况下调整大小时通常得到的; 由计算机图形硬件提供的"双线性"滤波器产生平庸的放大,但是以缩小的尺寸提供.

  • 出于性能原因,希望在一个维度上缩放图像,然后在另一个维度上缩放图像.这意味着您的过滤器运行速度更快:与过滤器宽度成比例的时间,而不是与过滤器区域成比例.这里讨论的所有过滤器都是"可分离的",这意味着您可以以这种方式应用它们.

如果您选择高质量的过滤器,那么确切的形式并不像您想象的那么重要.有两类好的过滤器:全正面的过滤器,如"高斯",倾向于模糊的一面,而负片状的像"lanczos",它们是尖锐的,但可能会产生轻微的振铃效果.请注意,"双三次"滤波器是一个类别,其中包括全部为正的"B样条",以及具有负波瓣的"Mitchell"和"Catmull-Rom".