• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#常见图像处理效果

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
// 根据RGB,计算灰度值
private int GetGrayColor(System.Drawing.Color color)
{
int i = (int)(0.299 * color.R + 0.587 * color.G + 0.114 * color.B);
int i2 = (color.R * 19595 + color.G * 38469 + color.B * 7472) >> 16;
return i;
}

private void SetBitmap(Bitmap img)
{
BitmapData bmData
= img.LockBits(new Rectangle(0, 0, img.Width, img.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
unsafe
{
byte* p = (byte*)(void*)bmData.Scan0;
int offset = bmData.Stride - img.Width * 3;

for (int y = 0; y < img.Height; y++)
{
for (int x = 0; x < img.Width; x++)
{
#region 二值化

//int gray = GetGrayColor(Color.FromArgb(p[0], p[1], p[2]));
//if (gray > 128)
// p[0] = p[1] = p[2] = 255;
//else
// p[0] = p[1] = p[2] = 0;

#endregion

#region 反相

//p[0] = (byte)(255 - p[0]);
//p[1] = (byte)(255 - p[1]);
//p[2] = (byte)(255 - p[2]);

#endregion

#region 浮雕
//对图像像素点的像素值分别与相邻像素点的像素值相减后加上128, 然后将其作为新的像素点的值.

//int r = p[0] - p[0 + 3] + 128;
//int g = p[1] - p[1 + 3] + 128;
//int b = p[2] - p[2 + 3] + 128;

//if (r > 255)
// r = 255;
//else if (r < 0)
// r = 0;

//if (g > 255)
// g = 255;
//else if (g < 0)
// g = 0;

//if (b > 255)
// b = 255;
//else if (b < 0)
// b = 0;

//p[0] = (byte)r;
//p[1] = (byte)g;
//p[2] = (byte)b;

#endregion

p
+= 3;
}
p
+= offset;
}
}
img.UnlockBits(bmData);
}

  

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#做一个进度条发布时间:2022-07-13
下一篇:
c#vs2010连接access数据库发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap