.NET Core 图像处理(图像二值化,图像灰度化,图像灰度反转)

ImageSharp 是支持.NET Core跨平台图形处理库,本文将利用ImageSharp库实现图像二值化,图像灰度化,图像灰度反转。

  • 图像二值化
public static Image<Rgba32> Binaryzation(Image<Rgba32> image)
{
     int avg = 0;
     for (int i = 0; i < image.Width; i++)
     {
         for (int j = 0; j < image.Height; j++)
         {
             var color = image.GetPixelReference(i, j);
             avg += color.B;
         }
     }
     avg = (int)avg / (image.Width * image.Height);

     for (int i = 0; i < image.Width; i++)
     {
         for (int j = 0; j < image.Height; j++)
         {
             //获取该像素点的RGB的颜色
             var color = image.GetPixelReference(i, j);
             int value = 255 - color.B;
             //计算颜色,大于平均值为黑,小于平均值为黑
             Color newColor = value > avg ? Color.FromArgb(0, 0, 0) : Color.FromArgb(255,255,255);
             //修改该像素点的RGB的颜色
             image.GetPixelReference(i, j).Rgba =(uint)newColor.ToArgb();
         }
     }
     return image;
}
  • 图像灰度化
public static Image<Rgba32> GrayProcessing(Image<Rgba32> image)
{
    for (int i = 0; i < image.Width; i++)
    {
        for (int j = 0; j < image.Height; j++)
        {
            //获取该像素点的RGB的颜色
            var color = image.GetPixelReference(i, j);
            //计算灰度值
            int gray = (int)(color.R * 0.3 + color.G * 0.59 + color.B * 0.11);
            Color newColor = Color.FromArgb(gray, gray, gray);
            //修改该像素点的RGB的颜色
            image.GetPixelReference(i, j).Rgba = (uint)newColor.ToArgb();
        }
    }
    return image;
}
  • 图像灰度反转
 public static Image<Rgba32> GrayReversal(Image<Rgba32> image)
 {
     for (int i = 0; i < image.Width; i++)
     {
         for (int j = 0; j < image.Height; j++)
         {
             //获取该像素点的RGB的颜色
             var color = image.GetPixelReference(i, j);
             //取相反色
             Color newColor = Color.FromArgb(255-color.R,255-color.G,255-color.B);
             //修改该像素点的RGB的颜色
             image.GetPixelReference(i, j).Rgba = (uint)newColor.ToArgb();
         }
     }
     return image;
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值