使用 Imagemagick 调整对数图像大小?

问题描述

我想使用对数刻度在一个维度上重新缩放图像。我一直在寻找关于如何做到这一点的一些想法。一些选项:

  1. -evaluate seems to take Pow功能
  2. -fx seems to be an option,和/但我仍在努力理解它

以上两者可能无法传递给 -size 或调整大小操作。

解决方法

我不确定你在问什么。但这里是如何对 ImageMagick 中的图像应用对数变换。由于几何变换是逆变换(指定一个输出像素并找到它在输入图像中的来源),我们必须使用对数的倒数,即指数。例如对于水平变换:

输入:

enter image description here

convert lena.png -virtual-pixel black -fx "u.p{exp(6*i/(w-1)),j}" lena_ln.png

enter image description here

现在,如果您希望它在没有右侧黑色区域的情况下完全适合水平 256 像素,我们需要计算对数:

ln(x+1) for x=0 to 255
ln(0+1) = ln(1) = 0
ln(255+1) = ln(256) = 5.545

现在我们需要 -fx 的逆运算,这是一个指数,

ln(x+1) = 5.545
x+1 = exp(5.545)
x = exp(5.545) - 1

convert lena.png -virtual-pixel black -fx "u.p{exp(5.545*i/(w-1))-1,j}" lena_ln2.png

enter image description here