C#彩色图像的伪色空间处理程序设计(12)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

C#彩色图像的伪色空间处理程序设计(12)


Format32bppArgb    每个像素32位,Alpha、红色、绿色、蓝色分量分别使用8位,这是默认的GDI+的颜色组合
Format64bppArgb    每个像素64位,Alpha、红色、绿色、蓝色分量分别使用16位
Indexed    索引颜色值,这些值是系统颜色表中颜色的索引,而不是单个颜色值
UnlockBits方法使用跟一个由LockBits返回的类型为BitmapData的参数,它定义为:public void UnlockBits(BitmapData bitmapdata)。
BitmapData类
BitmapData对象指定了位图的属性。如下所示,
Height属性:被锁定位图的高度。
Width属性:被锁定位图的宽度。
PixelFormat 属性:数据的实际像素格式。
Stride属性:步幅,也称为扫描宽度.
Scan0属性:被锁定数组的首字节地址,如果整个图像被锁定 ,则是图像的第一个字节的地址。
Graphics类
Graphics对象是GDI+的关键所在。许多对象都是由Graphics类表示的,该类定义了绘制和填充图形对象的方法和属性。一个应用程序只要需要进行绘制或着色,它就必须使用Graphics对象。
Graphics的DrawImage()方法用于在指定位置显示原始图像,或者缩放后的图像。该方法的重载方式有很多,常用的一种方式是:
public void DrawImage
{
Image image, Rectangle decRect,
Rectangle scrRect,Graphics scrUnit
};
image:原始图像来源图像。
decRect:Rectangle结构,它指定所绘制图像的位置大小。将图像进行缩放以适合该矩形。
scrRec:Rectangle结构它指定image对象中将要背绘制的部分。
scrUnit:GraphicsUnit枚举的成员,它指定scrUnit参数所使用的度量单位。
它是使用方法如下:
Graphics g = e.Graphics;
g.DrawImage(curBitmap, 9, 2, curBitmap.Width, curBitmap.Height);
其中,curBitmap指当前pictureBox中的图像作为即将描画的图像,9,2分别代表图像的起始的x和y坐标,curBitmap.Width与curBitmap.Height则是取当前图像的长和宽作为新画图形的长宽。
Image 类和color 类
Image类提供了位图和元文件操作的函数,Image被声明为abstract,也就是说,Image类不能实例化对象,而只能作为一个基类。Image 是抽象类, Bitmap就是继承自Image。Image虽然不可以用来直接建立图片,但是它可以用来加载图片。
Color类是System.Drawing.Color里面的内容,带上透明色的话,它有将近140多种的颜色可以选取,因为此次课题主要是处理伪彩色的问题,所以,涉及最多的便是红、绿、蓝三种颜色,它的使用方法可以定义如下:
Color pixel1;//定义color类
Bitmap mybitmap = (Bitmap)this.pictureBox1.Image;//定义一个bitmap类
int r;
pixel1 = mybitmap.GetPixel(x, y);//获取bitmap的像素
r = pixel1.R//将红色的值传给r。
灰度处理
灰度处理的概念
将彩色图像转化成为灰度图像的过程称为图像的灰度化处理。彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255个中值可取,这样一个像素点可以有1600多万(255*255*255)的颜色的变化范围。而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其中一个像素点的变化范围为255种,所以在数字图像处理中一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。
在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫做灰度值。因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0-255。
灰度处理的基本方法 (责任编辑:qin)