如何使用 ImageMagick 将彩色图像转换为黑白图像?

Rex*_*oom 5 monochrome imagemagick .net-core

背景:我在 Gimp 中对彩色图像执行了索引转换,结果是源图像的漂亮黑白版本。

我在 ImageMagick 中尝试了多种选项,但均无济于事。我可以接近,但从来没有像 gimp 看起来毫不费力地那样清晰和清晰。

这是我的来源:

var bmp = new MagickImage(sourceImage);

bmp.Threshold(new ImageMagick.Percentage(60));

bmp.Resample(200, 200);
bmp.ColorType = ColorType.Bilevel;
bmp.BitDepth(1);
bmp.Settings.Compression = CompressionMethod.Group4;
bmp.Strip();

bmp.Format = MagickFormat.Tiff;
Run Code Online (Sandbox Code Playgroud)

我一直在调整阈值调用,并尝试了我在网上看到的各种建议,取得了不同程度的成功。

magickimage 有一个名为 -monochrome 的功能,但我还没有找到如何在 .net 库中实现该功能。

我确信这是可能的,但是实现良好的黑白转换的最佳方法是什么。

样本图像

fmw*_*w42 10

使用 ImageMagick 7,您可以进行 Otsu 阈值处理。

输入:

在此输入图像描述

magick check.png -alpha off -auto-threshold otsu x.png
Run Code Online (Sandbox Code Playgroud)

结果:

在此输入图像描述

ImageMagick 6 中没有内置等效项。但是我有一个脚本 otsuthresh 可以在我的网站上执行此操作

所以在 ImageMagick 6 中,您只需进行简单的阈值处理。

convert check.png -alpha off -threshold 50% y.png
Run Code Online (Sandbox Code Playgroud)

结果:

在此输入图像描述

我注意到您的输入图像有一个不透明的 Alpha 通道,需要将其删除才能获得正确的结果。