第1章 Visual C++数字图像编程基础
1.1 图像、颜色表和色彩空间
1.1.1 图像
组成数字图像的基本单位是像素(Pixel),也就是说,数字图像是像素的集合。如图1-1所示,图中每个格点代表一个像素,该图是一个白色背景下包含灰色矩形的图像。
数字图像通常存放在计算机的外存储器设备中,例如硬盘、光盘等,在需要进行显示和处理时才被调入内存的数组中。从本质上���,图像数据在计算机内存或硬盘中是以字符型数据存在的,这与其他整型数据或者浮点型数据没有任何区别,都是一种数字表达符号,当把它在计算机屏幕上显示出来时,才是我们人眼看到的真正有意义的数字图像。普通的显示器屏幕也是由许多点(像素)构成的,显示时,电子枪每次从左到右、从上到下进行扫描,为每个像素着色,利用人眼的视觉暂留效应就可以显示出一屏完整的图像。比如,我们常说的屏幕分辨率为1024×768,刷新率为80Hz,意思是说屏幕上每行像素为1024个,共768行,而且每秒重复扫描80次。目前的显示设备的刷新率都在80Hz以上,一般屏幕刷新频率大于80Hz时,人眼感受不到屏幕刷新而产生的闪烁,这种显示器被称为位映像设备。所谓位映像,即是指一个二维的像素矩阵,而位图就是采用位映像方法显示和存储的图像。一幅图像的显示就是将图像的像素映射到屏幕的像素上并显示一定的颜色。
图1-1所示是一个灰度图像的例子,当一幅图像的像素由彩色表示时就是我们通常所说的彩色图像了。对于彩色图像的表达,将在调色板和彩色空间两部分内容中谈到。
1.1.2 图像的矩阵表示
数字图像数据可以用矩阵来表示,因此可以采用矩阵理论和矩阵算法对数字图像进行分析和处理。*典型的例子是灰度图像,如图1-2所示。灰度图像的像素数据就是一个矩阵,矩阵的行对应图像的高(单位为像素),矩阵的列对应图像的宽(单位为像素),矩阵的元素对应图像的像素,矩阵元素的值就是像素的灰度值。
……