Skip to content
MagickCmd › ImageMagick 锐化与模糊

ImageMagick 锐化与模糊

缩放后用 USM 锐化找回细节,应用模糊或高斯模糊,给区域打马赛克,用中值滤波降噪。并解释 unsharp 那四个数字的含义。

缩放之后锐化

任何缩小都会让边缘变软。USM 锐化能把它找回来:

magick input.jpg -resize 1200 -unsharp 0x0.75+0.75+0.008 output.jpg

那四个数字是什么意思

语法是 半径 x sigma + 强度 + 阈值

  • 半径 —— 填 0 让 ImageMagick 从 sigma 推算。绝大多数情况下就该这么写。
  • sigma —— 锐化光晕的宽度。网页用图 0.5–1.0,印刷可以更大。
  • 强度 —— 力度。超过 1.5 左右,边缘周围就会开始出现明显的亮边。
  • 阈值 —— 相邻像素差异要多大才做锐化。像 0.008 这样的小值能防止天空这类平坦区域被锐出噪点。

阈值填 0 是锐化后照片发颗粒的最常见原因。

简单锐化

magick input.jpg -sharpen 0x1 output.jpg

纯卷积,没有阈值控制。更快、更粗暴,也比 -unsharp 更容易放大噪点。

模糊

magick input.jpg -blur 0x8 output.jpg
magick input.jpg -gaussian-blur 0x8 output.jpg

看着差不多,但 -blur 是快速近似,-gaussian-blur 计算的是数学意义上的真高斯,慢好几倍。做视觉效果用前者就够了。

给区域打马赛克

ImageMagick 没有 -pixelate 参数。做法是用 -scale 缩小再放大 —— 它走最近邻采样,出来的是硬边方块而不是柔和模糊:

magick input.jpg -scale 5% -scale 2000% output.jpg

只给局部打码的话,先裁出区域、打码、再合成回去:

magick input.jpg \
  '(' -clone 0 -crop 300x120+400+250 +repage -scale 8% -scale 1250% ')' \
  -geometry +400+250 -composite output.jpg

模糊不等于遮盖

如果你是在隐藏敏感信息:轻度模糊或粗糙的马赛克有时能被部分还原,而且原图往往还在别处。真正要紧的内容,请直接画一个不透明矩形:

magick input.jpg -fill black -draw 'rectangle 400,250 700,370' output.jpg

降噪

magick input.jpg -median 2 output.jpg
magick input.jpg -despeckle output.jpg
magick input.jpg -enhance output.jpg

-median 去除噪点的同时保住边缘,所以处理扫描文档和高噪点手机照片比模糊好。数值调大会显著变慢。


相关页面

Copied