C# 生成图像中没有灰度值/噪声的二进制掩码?

标签 c# .net gdi+

在 C# 中,如何生成图像中没有灰度值/噪声的二进制掩码?

现在我能够生成一个相当简单的输出,它看起来非常接近我想要的结果,但白色 Blob 内部和外部的边缘周围都有噪声(您需要一直放大才能看到噪音)。我计划稍后使用该图像进行图像处理,但图像中只能包含黑白值。

图片: Crop 1 Crop 2

代码:

    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/

相关文章:

c# - 无法将 CefSharp 添加到我的工具箱

c# - 更改组合框中某些行的背景颜色

c# - 如何知道将从 Web API 授权过滤器调用哪个 Controller 方法

c# - Bitmap.LockBits "pin"位图是否存入内存?

c++ - 将位图位从 GetDIBits 转换为 jpeg 以进行 winsock 传输

c# - 为什么 Visual Studio 将 List<T>.Length 替换为 List<T>.Count?

c# - Service Fabric - 远程监听器和通信监听器不同时工作

c# - 限时杀进程的逻辑

c# - 颜色替换 GDI C#

c# - 如何将 System.Drawing.Bitmap 覆盖到现有的 GDI 位图上?