c# - 使用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");
这是根图像:
结果如下:
这是我想要的图像:
解决方案
推荐阅读
- r - 从R中的函数捕获多个图
- php - 按 2 个值对数组进行排序
- html - 使用填充对齐屏幕中心的两个按钮
- visual-studio-code - 在 vscode 中删除或禁用红点悬停断点
- python - 从 Python 3.6 迁移到 3.7+ 时出现导入错误,从 root_dir 导入根目录不再合法
- python - 将使用 pytube 库下载的文件保存到所需位置
- c++ - CPath 是否执行引用计数?
- python - 从文件中导入特定变量而不计算其他变量
- python - 如何从它的 id discord.py 中获取消息对象
- c - 我正在尝试制作一个打印浮点数的函数,而不使用 C 中的任何标准库函数