在 C# 中,如何生成图像中没有灰度值/噪声的二进制掩码?
现在我能够生成一个相当简单的输出,它看起来非常接近我想要的结果,但白色 Blob 内部和外部的边缘周围都有噪声(您需要一直放大才能看到噪音)。我计划稍后使用该图像进行图像处理,但图像中只能包含黑白值。
代码:
public CropedImage(List<Node> nodes)
{
InitializeComponent();
//List<PointF> listpoints = new List<PointF>();
nodes.ToArray();
PointF[] points = new PointF[nodes.Count];
for(int i = 0; i < nodes.Count; ++i)
{
points[i].X = nodes[i].X;
points[i].Y = nodes[i].Y;
}
Image SourceImage = ImageOperations.GetImage(MainForm.imageMatrix, pictureBox1);
using (Graphics g = Graphics.FromImage(SourceImage))
{
Color black = ColorTranslator.FromHtml("#000000");
Color white = ColorTranslator.FromHtml("#FFFFFF");
using (Brush b = new SolidBrush(black))
{
Rectangle rect = new Rectangle();
g.FillRectangle(b, 0, 0, MainForm.WIDTH, MainForm.HEIGHT);
}
using (Brush b2 = new SolidBrush(white))
{
g.SmoothingMode = SmoothingMode.AntiAlias;
g.FillClosedCurve(b2, points, 0);
}
}
}
最佳答案
改变一下怎么样
g.SmoothingMode = SmoothingMode.AntiAlias;
到
g.SmoothingMode = SmoothingMode.None;
如果我理解正确,那就可以解决你的问题。
关于C# 生成图像中没有灰度值/噪声的二进制掩码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52597386/