毕业论文

打赏
当前位置: 毕业论文 > 计算机论文 >

C++图像文件处理工具的设计(3)

时间:2020-09-18 16:28来源:毕业论文
除了灰度图像,还有彩色图像,以RGB模型来说,一副24位彩色图像一个像素占3个字节,其中第一个字节为该点像素的B值,接下来依次为G值,R值。分别表示

除了灰度图像,还有彩色图像,以RGB模型来说,一副24位彩色图像一个像素占3个字节,其中第一个字节为该点像素的B值,接下来依次为G值,R值。分别表示该点的蓝色,绿色,红色的分量值[4][5]。说明:RGB模型也称为加色法混色模型。它是以RGB三色光互相叠加来实现混色的方法,因而适合于显示器等发光体的显示。其混色规律是:以等量的红、绿、蓝基色光混合时,有红+绿=黄色、红+蓝=紫色、绿+蓝=青色、红+绿+蓝=白色、三种基色光全无=黑色,加色法的混色规律可用图表示。其配色方程描述:F(物体颜色)=R(红色的百分比)+G(绿色的百分比)+B(蓝色的百分比)。

2.1.2  数字图像格式

图像文件一般由文件头和图像点阵数据两部分构成,文件头中一般包含文件标志,图像尺寸,颜色数等信息,这些信息由图像提供者定义;图像点阵数据包含该图像的每一点的颜色信息[6]。对于各种不同的图象文件格式,其文件头所包含的信息不尽相同,其中重要的是含有该文件所存储的图像信息的存储格式说明,对于图像处理程序来说,首先就是读取要处理的图象文件文件头信息,获得所有必需的信息,再据此读取图象点阵数据进行相应处理并正确显示。

BMP 是Microsoft Windows 操作系统所支持的主要图象文件格式之一,其格式简单,适应性强,但这种文件格式是非压缩的,故此文件所占的磁盘空间较大。在MFC 中也对BMP 文件格式提供了很好的支持。BMP 图像文件由以下四部分组成:位图文件头BITMAPFIL EHEADER 结构,位图信息头BITMAPINFIHEADER 结构,调色板PAL ETTE,位图像素数据。

第一部分是位图文件头结构定义如下:

typedef struct tagBITMAPFIL EHEADER

{

WORD bf Type ; ∥指定文件类型,必须0x424D ,即字符串“BM”

DWORD bfSize ; ∥指定文件大小,包括这14 个字节

WORD bfReserved1 ; ∥为保留字,不用考虑

WORD bfReserved2 ;

DWORD bf0ffBits ; ∥为从文件头到实际的位图数据的偏移字节数

}BITMAPFIL EHEADER ;

第二部分是位图信息头结构定义如下:

typedef struct tagBITMAPINFOHEADER

{源'自:751-'论/文'网"www.751com.cn

EWORD biSize ; ∥指定这个结构的长度为40 ,单位是字节

LONG biWidth ; ∥指定图像的宽度,单位是像素

LONG biHeight ; ∥指定图像的高度,单位是像素

WORD biPlanes ; ∥必须是1

WORD biBitcount ; ∥指定表示颜色时要用到的位数

DWORD biCompression ; ∥指定位图是否压缩

DWORD biSizeImage ; ∥指定实际的位图数据占用的字节数

LONG biXPelsPerMeter ; ∥指定目标设备的水平分辨率

LONG biYPelsPerMeter ; ∥指定目标设备的垂直分辨率

DWORD biClrUsed ; ∥指定本图像实际用到的颜色数

DWORD biClr Important ; ∥指定本图像中重要的颜色数

}BITMAPINORHEADER ;

第三部分是调色板调色板实际上是一个数组,共有biClrUsed 个元素(如果该值为零,则有2 的biBitCount次方个元素) ,数组中每个元素的类型是一个RGBQUAD结构,占4 个字节,其定义如下:

typedef struct tagRGBQUAD

{

BYTE rgbBlue ; ∥该颜色的蓝色分量

BYYE rgbGreen ; ∥该颜色的绿色分量;

BYTE rgbRed ; ∥该颜色的红色分量;

TE rgbReserved ; ∥保留值

}RGBQUAD ;

附:真彩色图像即大于24位的图像不需要调色板。

第四部分是实际的图像数据,对于用到调色板的位图,图像数据就是该像素值在调色板重的索引值,对于真彩色图,图像数据就是实际的R,G,B值。

C++图像文件处理工具的设计(3):http://www.751com.cn/jisuanji/lunwen_60877.html
------分隔线----------------------------
推荐内容