C#图像亮度调整的方法
本文实例讲述了C#图像亮度调整的方法。分享给大家供大家参考。具体如下:
//定义数字图象处理之(亮度调整函数)
private static Bitmap BrightnessP(Bitmap a, int v)
{
System.Drawing.Imaging.BitmapData bmpData = a.LockBits(new Rectangle(0, 0, a.Width, a.Height), System.Drawing.Imaging.ImageLockMode.ReadWrite, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
int bytes = a.Width * a.Height * 3;
IntPtr ptr = bmpData.Scan0;
int stride = bmpData.Stride;
unsafe
{
byte* p = (byte*)ptr;
int temp;
for (int j = 0; j < a.Height; j++)
{
for (int i = 0; i < a.Width * 3; i++,p++)
{
temp = (int)(p[0] + v);
temp = (temp > 255) ? 255 : temp < 0 ? 0 : temp;
p[0] = (byte)temp;
}
p += stride - a.Width * 3;
}
}
a.UnlockBits(bmpData);
return a;
}
希望本文所述对大家的C#程序设计有所帮助。
相关推荐
-
C#图像对比度调整的方法
本文实例讲述了C#图像对比度调整的方法.分享给大家供大家参考.具体如下: //定义对比度调整函数 private static Bitmap ContrastP(Bitmap a, double v) { System.Drawing.Imaging.BitmapData bmpData = a.LockBits(new Rectangle(0, 0, a.Width, a.Height), System.Drawing.Imaging.ImageLockMode.ReadWrite, Syst
-
C#图像处理之头发检测的方法
本文实例讲述了C#图像处理之头发检测的方法.分享给大家供大家参考.具体如下: //发色检测(YCbCr颜色空间) public Bitmap HairD(Bitmap a) { Rectangle rect = new Rectangle(0, 0, a.Width, a.Height); System.Drawing.Imaging.BitmapData bmpData = a.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWr
-
C#图像处理之图像目标质心检测的方法
本文实例讲述了C#图像处理之图像目标质心检测的方法.分享给大家供大家参考.具体如下: //采用二值化图像,图像中黑色表示背景,白色表示目标 //定义质心计算函数 private int[] CentPoints(Bitmap src) { //定义存储质心坐标的数组变量 int[] CentreP = new int[2]; int M00 = 0, M01 = 0, M10 = 0; Rectangle rect = new Rectangle(0, 0, src.Width, src.Hei
-
C#图像伪彩色处理方法
本文实例讲述了C#图像伪彩色处理方法.分享给大家供大家参考.具体如下: //灰度图转伪彩色图像函数 public Bitmap PGrayToColor(Bitmap src) { try { Bitmap a = new Bitmap(src); Rectangle rect = new Rectangle(0, 0, a.Width, a.Height); System.Drawing.Imaging.BitmapData bmpData = a.LockBits(rect, System.
-
C#图像处理之图像均值方差计算的方法
本文实例讲述了C#图像处理之图像均值方差计算的方法.分享给大家供大家参考.具体如下: //本函数均是基于RGB颜色空间计算 //定义图像均值函数(RGB空间) public double AnBitmap(Bitmap a) { double V = 0; Rectangle rect = new Rectangle(0, 0, a.Width, a.Height); System.Drawing.Imaging.BitmapData bmpData = a.LockBits(rect, Sys
-
C#图像线性变换的方法
本文实例讲述了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.Drawi
-
C#数字图像处理之图像缩放的方法
本文实例讲述了C#数字图像处理之图像缩放的方法.分享给大家供大家参考.具体如下: //定义图像缩放函数 private static Bitmap ZoomP(Bitmap a, float s, float v) { Bitmap bmp = new Bitmap((int)(a.Width * s), (int)(a.Height * v), System.Drawing.Imaging.PixelFormat.Format24bppRgb); Graphics g = Graphics.F
-
C#图像颜色聚类高效方法实例
本文实例讲述了C#图像颜色聚类高效方法.分享给大家供大家参考.具体分析如下: 图像颜色聚类的方法有很多,但是对于视频监控而言,现有方法很难满足实时性的要求,这里介绍一种位屏蔽压缩的方法实现颜色聚类,可以满足实时性的要求. 位屏蔽法就是在3D的RGB真彩空间中近似均匀采样的颜色压缩方法,即将屏蔽的颜色位置设置为0,具体可以采用移位运算来实现,这里我们以屏蔽RGB颜色分量末6位为例: public Bitmap PCluster(Bitmap a) { try { Rectangle rect =
-
C#图像灰度级拉伸的方法
本文实例讲述了C#图像灰度级拉伸的方法.分享给大家供大家参考.具体如下: //定义图像灰度拉伸函数 private static Bitmap GrayLP (Bitmap a) { Rectangle rect = new Rectangle(0, 0, a.Width, a.Height); System.Drawing.Imaging.BitmapData srcData = a.LockBits(rect, System.Drawing.Imaging.ImageLockMode.Rea
-
C#图像透明度调整的方法
本文实例讲述了C#图像透明度调整的方法.分享给大家供大家参考.具体如下: //定义图像透明度调整函数 public Bitmap PTransparentAdjust(Bitmap src,int num) { try { int w = src.Width; int h = src.Height; Bitmap dstBitmap = new Bitmap(src.Width, src.Height, System.Drawing.Imaging.PixelFormat.Format32bpp
-
C#图像处理之木刻效果实现方法
本文实例讲述了C#图像处理之木刻效果实现方法.分享给大家供大家参考.具体如下: //木刻效果 public Bitmap PFilterMuKe(Bitmap src) { try { Bitmap a = new Bitmap(src); Rectangle rect = new Rectangle(0, 0, a.Width, a.Height); System.Drawing.Imaging.BitmapData bmpData = a.LockBits(rect, System.Draw
随机推荐
- jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
- nginx提示:500 Internal Server Error错误解决办法
- java.lang.NoSuchMethodException: com.sun.proxy.$Proxy58.list错误解决办法
- ASP.NET中GridView、DataList、DataGrid三个数据控件foreach遍历用法示例
- 微信公众平台开发教程(五)详解自定义菜单
- javascript控制frame,iframe的src属性代码
- 从零开始学ASP.NET-基础篇第1/7页
- php UTF-8、Unicode和BOM问题
- Android布局之GridLayout网格布局
- 浏览器中url存储的JavaScript实现
- js获取系统的根路径实现介绍
- ASP移动文件函数movefile权限不足的替代方法
- JavaScript数组问题解决的多种方法
- Linux中使用crontab命令启用自定义定时任务实例
- IIS卸载后重装时提示:安装程序无法复制一个或多个文件 特定错误码是 0xe0000233
- mybatis如何通过接口查找对应的mapper.xml及方法执行详解
- 浅析android中的线程封装
- Spring工作原理简单探索
- CentOS7使用dnf安装mysql的方法
- PHP 布尔值的自增与自减的实现方法
