我有很多文本页面的扫描件(白底黑字)。
我通常的方法是使用“曲线”对话框清理 Gimp 中的那些,使用一条非常简单的曲线,只有四个点:0,0 - 63,0 - 224,255, 255,255
这使得所有灰色文本变成黑色,并且使文本变得更清晰,并将大部分白色像素变成纯白色。
如何使用 ImageMagick 或其他完全从命令行运行的 Linux 工具在脚本中实现相同的效果?
-normalize
或 -contrast-stretch
不起作用,因为它们使用像素计数进行操作。我需要一个运算符,它可以使颜色 0-63(灰度)变黑,所有高于 224 的纯白色,其余的应该标准化。
颜色修改页面显示了ImageMagick的许多颜色操作算法。
在这个具体案例中,有两种算法很有趣:
-level
为您提供靠近曲线末端的完美黑/白像素以及两者之间的线性分布。
S 形选项可在极值之间创建更平滑的曲线,这对于彩色照片效果更好。
要获得与 GIMP 类似的结果,您可以尝试依次应用(使文本和黑色区域真正变黑)。
在所有情况下,您都需要先运行
-normalize
(甚至运行 -contrast-stretch 来合并大部分噪声),以确保没有浪费黑/白级别。如果没有这个,最暗的颜色可能会比 rgb(0,0,0)
更亮,而最亮的颜色可能会低于纯白色。
[magick-users] ImageMagick 中的曲线
该存档消息中的第一个链接是一个 shell 脚本,我认为它可以满足您的需求。