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

logarithmic image resizing using Imagemagick?

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

  1. -evaluateseems to takePow等函数
  2. -fxseems to be an option,and/but我还在努力理解

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

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

输入:

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

现在,如果你想让它在水平方向正好适合 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