问题描述
我想使用对数刻度在一个维度上重新缩放图像。我一直在寻找关于如何做到这一点的一些想法。一些选项:
-
-evaluate
seems to takePow
等功能 -
-fx
seems to be an option,和/但我仍在努力理解它
以上两者可能无法传递给 -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