2013-03-15 178 views
7

这种情况是:我有许多扫描文档的图像。我想保留文档的主要内容 - 以黑色(#000000周围的小范围颜色)打印。但是,你知道,文件总是充满色彩:邮票,背景,装饰品,标志等。使用ImageMagick去除图像中除黑色以外的所有颜色?

我只想保留那些用黑色打印的文本。

我试着ImageMagick,到目前为止,这个命令:

convert X.png -matte (+clone -fuzz 20% -transparent "#000000") -compose DstOut -composite X1.png 

但没有达到预期的结果,对文本非常损坏,我无法阅读。 有人建议我增加了模糊到70%:

convert X.png -matte (+clone -fuzz 70% -transparent "#000000") -compose DstOut -composite X1.png 

然后文本显得更具可读性,但其他颜色残存下来了。

你能告诉我一个更好的解决方案为我的情况吗?每一个建议将不胜感激!

回答

17

要匹配除了黑色所有的颜色,你可以使用+opaque "#000000"

为了有一个小范围内围绕#000000你可以尝试用fuzz运营商不同的百分比:

convert input.png -fill white -fuzz 10% +opaque "#000000" result.png 

在Windows测试用的ImageMagick 6.6.0-1

+0

一旦你去超过55%绒毛,它包括红色但不是一些灰色,像#D9D9D9的颜色被忽略。有没有办法只保留所有的像素,我们看起来像黑/浅黑色。或者指定一系列的颜色? – 2017-01-09 11:51:51

4

我在寻找这个问题的答案时偶然发现了这个问题。我发现了一些帮助imagemagick论坛帖子。以下是我想出了:

convert input.gif -matte \(+clone -fuzz 1 -transparent black \) -compose DstOut -composite ~/Desktop/output.png 

论坛发帖:ImageMagick: Removing all but one color

+0

是的,谢谢。但是你的解决方案与我上面发布的完全一样。 – 2013-04-01 04:44:26

3

你应该尝试level指令:

convert test.png -level 25%,75% test_level.png 
相关问题