C#图像线性变换的方法
本文实例讲述了C#图像线性变换的方法。分享给大家供大家参考。具体如下:
//定义图像线性运算函数(y=kx+v)
privatestaticBitmapLinearOP(Bitmapa,doublek,doublev)
{
Rectanglerect=newRectangle(0,0,a.Width,a.Height);
System.Drawing.Imaging.BitmapDatasrcData=a.LockBits(rect,System.Drawing.Imaging.ImageLockMode.ReadWrite,a.PixelFormat);
IntPtrptr=srcData.Scan0;
intbytes=0;
bytes=srcData.Stride*a.Height;
byte[]grayValues=newbyte[bytes];
System.Runtime.InteropServices.Marshal.Copy(ptr,grayValues,0,bytes);
inttemp=0;
for(inti=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);
returna;
}
希望本文所述对大家的C#程序设计有所帮助。
热门推荐
10 朋友新年祝福语大全 简短
11 新年祝福语简短大方兔年
12 搬新家礼物祝福语简短
13 同学见面花束祝福语简短
14 五一假期祝福语幽默简短
15 离职欢送敬酒祝福语简短
16 对学弟的祝福语简短
17 考老师辞职祝福语简短
18 祝福语驱散霉运的话简短