2012-09-17 631 views
6

我想了解如何调整图像大小 - 请,有人可以向我解释什么是“过滤器”好吗?图像大小调整:什么是“过滤器”?

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

  • 有过滤器像“盒子”和“高斯”,但有没有过滤器称为“bicubic”?我在这里混合两个概念,一个是“卷积滤波器”和...?

  • 是否可以使用相同的滤波器来进行放大和缩小? (这将是非常高兴看到这样的示例代码)

  • 想要首先拉伸图像在一个维度,然后在另一个?

回答

7

在图像调整大小时,过滤器避免了称为aliasing的现象。如果你尝试没有一个过滤器来调整,通常混叠表现为厌恶像素化的效果,这是动画的时候尤其明显...

要回答你两点:

  • 该过滤器计算多少每个源像素有助于每个目的地。要调整大小,你需要一个线性滤波器,这很简单:滤波器可以看作是一个小的灰度图像;有效地,将滤波器置于与每个输出像素相对应的位置上,将每个附近的像素乘以该位置的滤波器值,然后将它们相加以获得输出像素值。

  • 所有这些滤波器都是“卷积滤波器”,因为卷积是上述操作的数学名称。 “盒子”过滤器的字面看起来像一个盒子 - 盒子中的每个像素的权重相等,而“高斯”过滤器则更圆润,在边缘朝向零。

  • 升级和缩小最重要的是为您的过滤器选择正确的大小。简而言之,您希望根据输入和输出中的哪一个具有最低的分辨率来缩放过滤器。第二件最重要的事情是避免使用错误的过滤器:“盒子”过滤器是您在尝试调整尺寸而不进行过滤时通常会得到的结果;由计算机图形硬件提供的“双线性”滤波器会产生平庸的放大效果,但会以错误的尺寸提供缩小比例。

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

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

+0

非常感谢!我想我终于明白维基百科何时表示“通过应用卷积可以获得具有类似特性的双三次插值器”。最后还有一件事,我仍然没有看到升级和缩小的工作原理。 Catmull-Rom的尺寸是2,特别是什么样的缩小比例,如果我有一张1000像素的大图片并将其大小调整为10像素,如果大小为100?对于每个输出像素“平均”(?)100像素是不是很慢? –

+0

你的猜测是正确的。为了放大,滤波器的尺寸应根据输入像素间距确定,但对于缩小比例,滤波器的尺寸应根据输出像素间距确定。这就是我写的“你想根据输入和输出中哪一个具有最低分辨率来扩展你的过滤器”的意思。 – comingstorm

+0

而且,是的,它每个输出像素都很慢,但是如果不处理所有的*输入*像素,您就不能指望离开。 – comingstorm