0

我目前正在使用 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 翻译?一定有某种公式?

4

1 回答 1

0

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

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

但简而言之:

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

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

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

于 2016-02-25T11:34:38.667 回答