【问题标题】:How to translate ImageMagick's unsharpMask settings to VIPS's vips_sharpen() settings如何将 ImageMagick 的 unsharpMask 设置转换为 VIPS 的 vips_sharpen() 设置
【发布时间】:2016-06-06 20:23:29
【问题描述】:

我目前正在使用 ImageMagick 调整图像大小和锐化图像。由于性能原因,我现在正在转向 VIPS。

我使用 imageMagick 的 unsharpMask (http://php.net/manual/en/imagick.unsharpmaskimage.php) 功能在调整照片大小后锐化照片。我目前正在使用以下设置:

Radius: 0
Sigma: .5
Amount: .25
threshold: .008

vips_sharpen (http://www.vips.ecs.soton.ac.uk/supported/7.42/doc/html/libvips/libvips-convolution.html#vips-sharpen) 有许多附加参数,我正在尝试复制相同的锐化结果。

有没有人知道一种简单的方法来计算 imagemagick unsharp mask 设置的 VIPS 转换?一定有什么公式吧?

【问题讨论】:

  • 在 Photoshop 中,我认为您的参数对应于Radius=0.5Amount=25Threshold=2,因此如果有人可以对 VIPS 做 Photoshop,您可能会有更多机会获得 VIPS :-)

标签: linux image-processing imagemagick vips


【解决方案1】:

这个问题已经在 vips 问题跟踪器上讨论过:

https://github.com/jcupitt/libvips/issues/393

但简而言之:

  • radius 与 IM 中的 sigma 相同。 vips 会根据 sigma 设置为您选择一个半径。
  • x1 对应于threshold,尽管缩放比例不同。 vips 是在 L* 差异图像上计算的,我猜 IM 的范围是 0 - 1,所以(可能?)将 IM 值乘以 100。
  • y2y3 似乎没有 IM 等价物。它们在打印时很有用,可以限制边缘上的光晕数量,我不知道它们对屏幕输出有多大用处。默认值可能是合理的,但您可以尝试将其关闭。
  • m1(我认为)在 IM 中始终为零,您可以尝试将其设为一个较小的值,它可以使从平坦区域到边缘区域的过渡不那么刺耳。
  • 我认为m2 相当于amount,尽管缩放比例可能不同。

还有一些其他的区别。 vips 只是对 CIELAB 的 L* 进行操作,也就是只是对亮度通道进行锐化,在感知上是均匀的。 vips 确实是为胶印工作而设计的,因此目前很难对屏幕进行更温和的调整。现在有一些补丁可以让vips_sharpen() 更适合显示输出。

总结:可能没有完美的参数匹配,因为底层的操作符是相当不同的。

【讨论】:

    猜你喜欢
    • 2015-06-23
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    • 2014-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    相关资源
    最近更新 更多