首页 > 解决方案 > 使用magick.net去除背景不是单一的纯色

问题描述

我正在尝试使用 magick.net 库来删除具有异构黑色背景的图像的背景。然而,结果并不令人满意。同时照片仍然有边框,靠近背景颜色的黑眼圈被去除。

这是我使用的代码:

var darkMark = image1.Clone();

darkMark.ColorFuzz = new Percentage(10);
darkMark.Transparent(new MagickColor("#111419"));
darkMark.Alpha(AlphaOption.Extract);
darkMark.Negate();

darkMark.Transparent(MagickColors.Black);
darkMark.Alpha(AlphaOption.Extract);
darkMark.Negate();

darkMark.Threshold(new Percentage(15));

image1.Composite(darkMark, CompositeOperator.CopyAlpha);
image1.Write("bg.png");

这是根图像:

图片

结果如下:

结果

这是我想要的图像:

喜欢

标签: c#imagemagickphotoshop

解决方案


您可以在 ImageMagick 中将形态添加到您的命令附近。在命令行中,我可以执行以下操作:

在此处输入图像描述

convert turtle.png -fuzz 20% -fill white -opaque black -morphology close diamond:1 x.png

在此处输入图像描述


推荐阅读