该文档谈到了Blur和GaussianBlur之间的区别。
关于哪个运算符“-blur”或“-gaussian-blur”更适合模糊图像,存在一些混淆。首先,“-blur”更快,但它使用两阶段技术来做到这一点。首先在一个轴上,然后在另一个轴上。另一方面,“-gaussian-blur”运算符在数学上更正确,因为它同时在所有方向上模糊。两者之间的速度成本可能是巨大的,高达 10 倍或更多,具体取决于所涉及的模糊量。
[...]
总而言之,这两个运算符略有不同,但差异很小。因为“-blur”要快得多,所以使用它。我几乎在所有涉及模糊的示例中都这样做。大的
那只是:
$image->Blur( 'x' . $level );
但是Perl ImageMagick 文档Blur
在和GaussianBlur
(强调我的)上都有相同的文本。我现在无法尝试,您必须自己进行基准测试。
模糊:使用给定半径和标准偏差 (sigma) 的高斯算子降低图像噪声并降低细节级别。
GaussianBlur:使用给定半径和标准偏差 (sigma) 的高斯算子降低图像噪声并降低细节级别。
文档还列出的另一种方法是将图像调整为非常小,然后再次放大。
使用大 sigma 值进行图像模糊非常慢。但是 onw 技术可以用来加速这个过程。然而,这只是一种粗略的方法,可以使用一些数学上的严谨性来改进结果。本质上,大模糊速度慢的原因是因为您需要一个大窗口或“内核”来将图像中的每个像素的大量像素合并在一起。然而,调整大小(使图像更小)做同样的事情,但在此过程中生成的像素更少。该技术基本上是缩小图像,然后再次放大以产生严重模糊的结果。高斯滤波器对此特别有用,因为您可以直接指定高斯西格玛定义。
示例命令行代码是这样的:
convert rose: -blur 0x5 rose_blur_5.png
convert rose: -filter Gaussian -resize 50% \
-define filter:sigma=2.5 -resize 200% rose_resize_5.png