(1.1)
其中,f表示空间坐标为(x,y,z)位置点的颜色,如果只考虑平面的情况,平面图像函数的描述为:
              (1.2)
RGB色彩空间是目前常用的一种彩色信息表达方式,它用红、蓝、绿三原色的亮度来定量表示颜色。RGB色彩空间使用RGB模型为图像中每一个像素的RGB分量分配一个0~255范围内的强度值。例如:纯红色R值为255,G值为0,B值为0;灰色的R、G、B三个值相等(除了0和255);白色的R、G、B都为255;黑色的R、G、B都为0。RGB图像只使用三种颜色,就可以使它们按照不同的比例混合,在屏幕上重现16777216种颜色。在 RGB 模式下,每种 RGB 成分都可使用从 0(黑色)到 255(白色)的值。 当所有三种成分值相等时,产生灰色阴影。 当所有成分的值均为 255 时,结果是纯白色;当该值为 0 时,结果是纯黑色。
如图1.1所示,RGB模型表示了颜色之间的关系。
 
图1.1 颜色的RGB空间
红色、绿色和蓝色组成了三个轴,在RGB颜色立方体上,每一种颜色都有其几何坐标。黑色位于立方体后方下部,(0,0,0)表示没有光线。立方体前方的顶部是白色,在这一点上,所有颜色的光线都集中在此。立方体的其他几个角分别是青色、品红色和黄色。
1.2    C#图像处理基础
1.2.1    Bmp图像结构
Bitmap对象封装了GDI+中的一个位图,此位图由图形图像及其属性的像素数据组成。因此Bitmap是用于处理由像素数据定义的图像的对象。该类的主要方法和属性有:
(1) GetPixel方法和SetPixel方法:获取和设置一个图像的指定像素的颜色。
(2) PixelFormat属性:返回图像的像素格式。
(3) Height和Width属性:返回图像的高度和宽度。
(4) LockBits方法和UnlockBits方法:分别锁定和解锁系统内存中的位图像素。在基于像素点的图像处理方法中使用LockBits和UnlockBits是一个很好的方式,这两种方法不但处理速度快,而且可以使我们通过指定像素的范围来控制位图的任意一部分,从而消除了通过循环对位图的像素逐个进行处理的需要。每次调用LockBits之后都必须调用一次UnlockBits,否则图像数据将会一直长占内存。
BitmapData类BitmapData对象指定了位图图像的属性,且是由Bitmap类的LockBits和UnlockBits方法使用,不可继承。BitmapData类最重要的属性有:
(1) Scan0属性:获取或设置位图中第一个像素数据的地址,它也可以看成是位图中的第一个扫描行。
(2) Stride属性:步幅,获取或设置Bitmap对象的跨距宽度(也称为扫描宽度)。但需要注意的是,Stride宽度并不一定等于图像的像素数组的宽度,如图2.1所示,这是因为Windows规定图像文件中一个扫描行的宽度必须是4字节的整数倍,不足的以0填充。
a)Bitmap:
    (1)     public Bitmap (int width,int height,int stride,     PixelFormat format,IntPtr scan0)用指定的大小、像素格式和像素数据初始化 Bitmap 类的新实例。
    (2)     LockBits():,就是把图像的内存区域根据格式锁定,拿到那块内存的首地址。这样就可以直接改写这段内存了。这个方法的设计是挺好,可惜都是C++作为源泉来的,.NET Framework里面根本就不推荐用指针,需要用Marshal.Copy把内容Copy到一个byte数组里面,然后处理完了再Copy回去。
    (3)     UnlockBits():从系统内存解锁此 Bitmap。
b)BitmapData:位图图像的属性
(1)   Height获取或设置 Bitmap 对象的像素高度。有时也称作扫描行数。
上一篇:ASP.net+sqlserver在线考试管理系统设计与实现
下一篇:Linux服务器数据安全方案的设计与实现

基于Apriori算法的电影推荐

PHP+IOS的会议管理系统的设计+ER图

数据挖掘在电子商务中的应用

数据挖掘的主题标绘数据获取技术与实现

基于PageRank算法的网络数据分析

基于神经网络的验证码识别算法

基于网络的通用试题库系...

神经外科重症监护病房患...

志愿者活动的调查问卷表

国内外图像分割技术研究现状

中国学术生态细节考察《...

医院财务风险因素分析及管理措施【2367字】

承德市事业单位档案管理...

C#学校科研管理系统的设计

AT89C52单片机的超声波测距...

公寓空调设计任务书

10万元能开儿童乐园吗,我...