如何使用Lanczos调整大小

时间:2009-12-23 19:02:42

标签: resize resampling

我可以很容易地计算Lanczos中使用的sinc(x)曲线的值,并且我已经阅读了之前关于Lanczos调整大小的解释,但是对于这个领域的新手我不明白如何实际应用它们。

  

用lanczos重新取样想象你   覆盖输出和输入   彼此,有点表示   像素位置在哪里。对于   您拍摄的每个输出像素位置   框+ - 从中​​输出3个像素   点。对于每个位于的输入像素   在该框中,计算值   该位置的lanczos功能   与输出的距离   输出像素坐标中的位置   作为参数。然后你需要   将计算值标准化   缩放它们,使它们加起来为1。   之后,将每个输入像素相乘   值与相应的缩放   将值和结果一起添加到   获取输出像素的值。

  1. 例如,“覆盖输入和输出”在编程术语中实际意味着什么?
  2. 在给出的等式中 lanczos(x)= { 如果abs(x)> 0则为0 3, 1如果x == 0, 别的罪(x * pi)/ x } 什么是x?

  3. 作为一个简单的例子,假设我有一个包含14个值的输入图像(即在地址In0-In13中): 20 25 30 35 40 45 50 45 40 35 30 25 20 15

    我希望将其缩放2,即缩放到具有28个值的图像(即在地址Out0-Out27中)。

    显然,地址Out13中的值将与地址In7中的值类似,但实际上我将乘以哪些值来计算Out13的正确值? 算法中的x是什么?

1 个答案:

答案 0 :(得分:0)

如果输入数据中的值位于t坐标[0 1 2 3 ...],则输出(按2放大)的坐标为[0 .5 1 1.5 2 2.5 3 .. ]。因此,要获得第一个输出值,请将过滤器置于0并乘以所有输入值。然后,为了获得第二个输出,您将滤波器置于1/2并乘以所有输入值。等等......