gpt4 book ai didi

python - 在 Wand 中执行 +level ImageMagick 操作的方法?

转载 作者:行者123 更新时间:2023-12-01 08:13:14 29 4
gpt4 key购买 nike

在命令行中使用 +level ImageMagick 运算符 ( https://imagemagick.org/script/command-line-options.php#level ) 将生成一个输出图像,其中输入图像的 channel 值压缩到指定的范围。

例如,以下 ImageMagick 命令将导致输出像素强度值出现在总像素值范围的 45% 到 70% 之间。

magick input.jpg +level 45%,70% output.jpg

如何在 Wand 中执行 +level ImageMagick 操作?

wand.image.BaseImage.level() ( http://docs.wand-py.org/en/0.5.1/wand/image.html#wand.image.BaseImage.level ) 似乎执行 -level ImageMagick 操作。

https://imagemagick.org/script/command-line-options.php#level 上所指定,-level 和 +level ImageMagick 运算符之间存在密切关系。

我不知道如何在 Wand 中执行 +level ImageMagick 操作。

有人能解释一下吗?

最佳答案

抱歉,我不太了解 Wand 语法。也许有人可以添加到这个答案或发布另一个提供正确语法的答案。

但是您可以使用带有参数多项式的wandfunction命令来实现与+level等效的效果,其中多项式参数相当于方程a* x+b。请参阅http://docs.wand-py.org/en/0.5.1/wand/image.html

您必须根据您的值和以下等式计算 a 和 b,以获得与 +level 等效的值。

a*X+b = Y

当X=0时,则Y=0.45。

当X=1时,则y=0.70。

所以我们有两个线性方程需要求解。

0*a+b=0.45

1*a+b=0.70

从上面的方程,你有

b=0.45

将b代入下面的方程可得

a+0.45=0.70 --> a=0.25

在 ImageMagick 中,您可以使用

convert image.suffix -function polynomial "0.45, 0.25" result.suffix


请参阅https://imagemagick.org/Usage/transform/#function_polynomial

在 Wand 函数中,您需要选择多项式,然后提供上面的 a 和 b 值。

对 Wand function 语法的猜测如下:

from wand.image import Image
with Image(filename='yourimage.suffix') as img:
a = 0.25
b = 0.45
img.function('polynomial', [a, b])
...

关于python - 在 Wand 中执行 +level ImageMagick 操作的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55109692/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com