码迷,mamicode.com
首页 > 编程语言 > 详细

C#数字图像处理算法学习笔记(一)--C#图像处理的3中方法

时间:2015-10-16 23:18:17      阅读:411      评论:0      收藏:0      [点我收藏+]

标签:

C#数字图像处理算法学习笔记(一)--C#图像处理的3中方法

Bitmap类:此类封装了GDI+中的一个位图,次位图有图形图像及其属性的像素数据组成。因此此类是用于处理像素数据定义的图形的对象。该类的主要方法和属性如下:

       GetPixel与SetPixel方法:获取或设置一个图像的指定像素的颜色。

      PixelFormat属性:返回图像的像素格式。

      Height和Width:返回图像的高度和宽度。

      LockBits与UnLockBits方法:分别锁定和解锁系统内存中的位图像素。

      LockBits方法返回一个BitmapData类型的对象。

      UnLockBits方法需要一个BitmapData类型的参数。

BitmapData类:

        Height属性,Width属性:被锁定的高度和宽度。

        PixFormat属性:数据的实际像素格式。

        Scan0属性:被锁定数组的首字节地址。如果整个图像被锁定,则是图像的第一个字节地址。

        Stride属性:步幅,也称为扫描宽度。

Graphics类:这个类是GDI+的关键所在。许多对象都是由Graphics类表示的,该类定义了绘制和填充图形对象的方法和属性。一个应用程序只需要进行绘制和着色,他就必须使用Graphics对象。

 

彩色图像灰度化:为了加速图像处理的速度,在图形算法中,往往将彩色图像转换成灰度图像。而为了适应人眼的感应,使用如下算法:

 Gray(i,j)=0.299*R(i,j)+0587*G(i,j)+0.114*B(i,j)

R(i,j),G(i,j),B(i,j)分别指的是对象像素的R,G,B分量值。

 

在C#中图像处理的3种方法分别是:提取像素法、内存法、指针法

像素提取法:通过GetPixel方法获取对应的像素信息,处理,再通过SetPixel设置对应像素的信息。这种方法是遍历所有的像素点并进行处理,对新手而言,这种方法便于理解,但效率很低。

内存法:把图像数据复制到内存中,这样程序的运行速度将大大加快。使用了LockBits与UnLockBits方法。内存法的运算速率要远高于像素提取法。

指针法:该方法与内存法类似,也是使用了LockBits与UnLockBits方法。但为了保证类型安全,C#是不支持指针的。要想使用指针,必须使用unsafe关键字。指针法的运算效率要高于内存法。

C#数字图像处理算法学习笔记(一)--C#图像处理的3中方法

标签:

原文地址:http://www.cnblogs.com/SilentCode/p/4886532.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!