VC++数字图像处理

2019-03-11 13:37

Visual C++数字图像处理

广义地讲,凡是记录在纸介质上的、拍摄在底片和照片上的、显示在电视、投影仪和计算机屏幕上的所有具有视觉效果的画面都可以称为图像。根据图像记录方式的不同,图像可分为两大类:一类是模拟图像(Analog Image),另一类是数字图像(Digital Image)。模拟图像是通过某种物理量(光、电等)的强弱变化来记录图像上各点的亮度信息的,例如模拟电视图像;而数字图像则完全是用数字(即计算机存储的数据)来记录图像亮度信息的。

所谓数字图像处理(Digital Image Processing),就是指用数字计算机及其他相关的数字技术,对数字图像施加某种或某些运算和处理,从而达到某种预期的处理目的。随着数字技术和数字计算机技术的飞速发展,数字图像处理技术在近20多年的时间里,迅速发展成为一门独立的有强大生命力的学科,其应用领域十分广泛。

作为数字图像处理技术的实现环节,本书将在Visual C++环境下介绍图像各种典型算法的编程实现。而作为一本书的开始,本章我们将介绍图像编程的基础知识,如数字图像的点阵数据、调色板概念、BMP文件结构以及设备无关位图(DIB)等,它是后面章节学习的基础。

1.1 图像、颜色表和色彩空间

1.1.1 图像

组成数字图像的基本单位是像素(Pixel),也就是说,数字图像是像素的集合。如图1-1所示,图中每个格点代表一个像素,该图是一个白色背景下包含灰色矩形的图像。

图1-1 放大后的矩形图像

数字图像通常存放在计算机的外存储器设备中,例如硬盘、光盘

等,在需要进行显示和处理时才被

调入内存的数组中。从本质上讲,图像数据在计算机内存或硬盘中是以字符型数据存在的,这与其他整型数据或者浮点型数据没有任何区别,都是一种数字表达符号,当把它在计算机屏幕上显示出来时,才是我们人眼看到的真正有意义的数字图像。普通的显示器屏幕也是由许多点(像素)构成的,显示时,电子枪每次从左到右、从上到下进行扫描,为每个像素着色,利用

人眼的视觉暂留效应就可以显示出一屏完整的图像。比如,我们常说的屏幕分辨率为1024′768,刷新率为80Hz,意思是说屏幕上每行像素为1024个,共768行,而且每秒重复扫描80次。目前的显示设备的刷新率都在80Hz以上,一般屏幕刷新频率大于80Hz时,人眼感受不到屏幕刷新而产生的闪烁,这种显示器被称为位映像设备。所谓位映像,即是指一个二维的像素矩阵,而位图就是采用位映像方法显示和存储的图像。一幅图像的显示就是将图像的像素映射到屏幕的像素上并显示一定的颜色。

图1-1所示是一个灰度图像的例子,当一幅图像的像素由彩色表示时就是我们通常所说的彩色图像了。对于彩色图像的表达,将在调色板和彩色空间两部分内容中谈到。

1.1.2 图像的矩阵表示

数字图像数据可以用矩阵来表示,因此可以采用矩阵理论和矩阵算法对数字图像进行分析和处理。最典型的例子是灰度图像,如图1-2所示。灰度图像的像素数据就是一个矩阵,矩阵的行对应图像的高(单位为像素),矩阵的列对应图像的宽(单位为像素),矩阵的元素对应图像的像素,矩阵元素的值就是像素的灰度值。

图1-2 数字图像与图像矩阵

由于数字图像可以表示为矩阵的形式,所以在计算机数字图像处理程序中,通常用二维数组来存放图像数据,参见图1-3。二维数组的行对应图像的高,二维数组的列对应图像的宽,二维数组的元素对应图像的像素,二维数组元素的值就是像素的灰度值。采用二维数组来存储数字图像,符合二维图像的行列特性,同时也便于程序的寻址操作,使得计算机图像编程十分方便。

图1-3 数字图像与二维数组 1.1.3 颜色表 图像的位图数据是一个二维数组(矩阵),矩阵的每一个元素对应了图像的一个像素,当保存一幅图像时,不但要保存图像的位图数据矩阵,还要将每个像素的颜色保存下来,颜色的记录是利用颜色表来完成的。 颜色表,也叫颜色查找表,是图像像素数据的颜色索引表。以一个4色位图为例,则其颜色表有4个表项,表中每一行记录一种颜色的R、G、B值,这样,当表示一个像素的颜色时,只需要指出该颜色在第几行,即该颜色在表中的索引值即可。假设该4色位图的颜色表如表1-1所示,并假设该4色位图大小为8行8列,其图像数据阵列如图1-4所示。 表1-1 4色位图的颜色表 颜色索引值 蓝色成分 绿色成分 红色成分 0123 0 00 000 255002550255图1-4 4色位图数据矩阵 该位图有4种颜色(最多也只能有4种颜色),对于位图矩阵中第3行第4列的像素,该像素的值为2,则其颜色由颜色表第3行决定(索引值从0开始),该行的颜色为绿色(0,255,0)。为了简单起见,上面颜色表的例子每一个记录只有3个分量——R、G、B,实际上,真正一幅BMP图像其颜色表的每一个记录是由4个分量组成的,这在1.2.1节“BMP文件结构”中有详细介绍。 有一个特例,对于真彩色图像,每个像素占存储空间3个字节(24位),分别对应R、G、B三个分量,每个像素的值已经将该像素的颜色记录下来了,不再需要颜色表,因此24位真彩色位图没有颜色表。

1.1.4 彩色空间

自然界中的所有颜色都可以由红、绿、蓝(R、G、B)三种颜色合成,数字图像也是如此。针对红(绿/蓝)分量的多少,人为地划分为0~255共256个等级,0表示不含红色(绿/蓝)成分,255表示含有100%红色(绿/蓝)成分。根据红、绿、蓝各种不同的组合就能表示256′256′256种颜色,例如一个像素,当它的红、绿、蓝成分分别为255、0、255时显示为紫色。而对于灰度图像的像素,该像素的红、绿、蓝成分是相等的,只不过随着这三个分量数值的增大,像素颜色从黑色变成白色。

从上面介绍可知,彩色数字图像可以由RGB彩色空间表示。彩色空间是用来表示彩色的数学模型,又被称为彩色模型。RGB彩色空间是最常用的一种彩色空间,但在计算机系统中表达颜色信息的空间不止这一种,此处介绍3种最常用的彩色空间。

1.RGB彩色空间

几乎所有的彩色成像设备和彩色显示设备都采用RGB(Red / Green / Blue,红绿蓝)三基色,不仅如此,数字图像文件的常用存储形式,也以RGB三基色为主,由RGB三基色为坐标形成的空间称为RGB彩色空间。

根据色度学原理,自然界的各种颜色光都可由红、绿、蓝三种颜色的光按不同比例混合而成,同样,自然界的各种颜色光都可分解成红、绿、蓝三种颜色光,所以将红、绿、蓝三种颜色称为三基色。

图1-5所示是RGB三基色合成其他颜色的典型例子和RGB彩色空间以及基色间的关系。由图1-5(a)可以看出,青色可以由绿色和蓝色合成,洋红(或品红)可以由红色和蓝色合成,黄色可以由红色和绿色合成,而青色、洋红和黄色恰好是CMY(Cyan/Magenta/Yellow)三基色。当RGB三基色以等比例或等量进行混合时,可以得到黑、灰或白色,而采用不同比例进行混合时,就得到千变万化的颜色。

洋红

(a)RGB三基色混色 (b)RGB彩色空间 (c)RGB三基色二维对称表示

图1-5 三基色原理图

在RGB彩色空间中,任意彩色光L的配色方程参见公式(1-1)。

(1-1)

其中,

为彩色光L的三基色分量或百分比。

2.CMY彩色空间

自然界物体颜色光的形成方式将物体划分为两类——发光物体和不发光物体,发光物体称为有源物体,不发光物体称为无源物体。有源物体是自身发出光波的物体,其颜色由物体发出的光波决定,因此采用RGB三基色相加模型和RGB彩色空间描述。有源物体的例子包括彩色电视、彩色显示器等。

无源物体是不发出光波的物体,其颜色由该物体吸收或反射哪些光波来决定,因此采用CMY三基色相减模型和CMY彩色空间描述。例如,在彩色印刷和彩色打印时,纸张是不能发射光线而只能反射光线的,因此,彩色印刷机和彩色打印机只能通过一些能够吸收特定光波和反射其他光波的油墨和颜料以及它们的不同比例的混合来印出千变万化的颜色。


VC++数字图像处理.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:妈妈十大寿祝寿词

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: