我可以很容易地计算Lanczos中使用的sinc(x)曲线的值,并且我已经阅读了之前关于Lanczos调整大小的解释,但是对于这个领域的新手我不明白如何实际应用它们。
用lanczos重新取样想象你 覆盖输出和输入 彼此,有点表示 像素位置在哪里。对于 您拍摄的每个输出像素位置 框+ - 从中输出3个像素 点。对于每个位于的输入像素 在该框中,计算值 该位置的lanczos功能 与输出的距离 输出像素坐标中的位置 作为参数。然后你需要 将计算值标准化 缩放它们,使它们加起来为1。 之后,将每个输入像素相乘 值与相应的缩放 将值和结果一起添加到 获取输出像素的值。
作为一个简单的例子,假设我有一个包含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是什么?
答案 0 :(得分:0)
如果输入数据中的值位于t坐标[0 1 2 3 ...],则输出(按2放大)的坐标为[0 .5 1 1.5 2 2.5 3 .. ]。因此,要获得第一个输出值,请将过滤器置于0并乘以所有输入值。然后,为了获得第二个输出,您将滤波器置于1/2并乘以所有输入值。等等......