首页 > 编程 > C# > 正文

C#图像线性变换的方法

2020-01-24 01:56:24
字体:
来源:转载
供稿:网友

本文实例讲述了C#图像线性变换的方法。分享给大家供大家参考。具体如下:

//定义图像线性运算函数(y=kx+v)private static Bitmap LinearOP(Bitmap a, double k, double v){  Rectangle rect = new Rectangle(0, 0, a.Width, a.Height);  System.Drawing.Imaging.BitmapData srcData = a.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite, a.PixelFormat);  IntPtr ptr = srcData.Scan0;  int bytes = 0;  bytes = srcData.Stride * a.Height;  byte[] grayValues = new byte[bytes];  System.Runtime.InteropServices.Marshal.Copy(ptr, grayValues, 0, bytes);  int temp = 0;  for (int i = 0; i < bytes; i++)  {   temp = (int)(k * grayValues[i] + v + 0.5);   temp = (temp > 255) ? 255 : temp < 0 ? 0 : temp;   grayValues[i] = (byte)temp;  }  System.Runtime.InteropServices.Marshal.Copy(grayValues, 0, ptr, bytes);  a.UnlockBits(srcData);  return a;}

希望本文所述对大家的C#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表