傻大方


首页 > 学习 >

基于VC++的图像融合技术的实现( 四 )

傻大方摘要:【基于VC++的图像融合技术的实现( 四 )|摘要近年来|图像融合已成为图】普通的显示器屏幕是由许许多多点构成的,我们称之为象素 。显示时采用扫描的方法:电子枪每次从左到右扫描一行,为每个象素着色,然后从上到下这...



按关键词阅读:


普通的显示器屏幕是由许许多多点构成的,我们称之为象素 。显示时采用扫描的方法:电子枪每次从左到右扫描一行,为每个象素着色,然后从上到下这样扫描若干行,就扫过了一屏 。为了防止闪烁,每秒要重复上述过
6
程几十次 。例如我们常说的屏幕分辨率为640×480,刷新频率为 70Hz,意思是说每行要扫描640个象素,一共有480行,每秒重复扫描屏幕70次 。
我们称这种显示器为位映象设备 。所谓位映象,就是指一个二维的象素矩阵,而位图就是采用位映象方法显示和存储的图象 。
有一个长宽各为200个象素,颜色数为16色的彩色图,每一个象素都用R、G、B三个分量表示 。因为每个分量有256个级别,要用8位(bit),即一个字节(byte)来表示,所以每个象素需要用3个字节 。整个图象要用200×200×3,约120k字节,可不是一个小数目呀!如果我们用下面的方法,就能省的多 。
因为是一个16色图,也就是说这幅图中最多只有16种颜色,我们可以用一个表:表中的每一行记录一种颜色的R、G、B值 。这样当我们表示一个象素的颜色时,只需要指出该颜色是在第几行,即该颜色在表中的索引值 。举个例子,如果表的第0行为255,0,0(红色),那么当某个象素为红色时,只需要标明0即可 。
让我们再来计算一下:16种状态可以用4位(bit)表示,所以一个象素要用半个字节 。整个图象要用200×200×0.5,约20k字节,再加上表占用的字节为3×16=48字节.整个占用的字节数约为前面的1/6,省很多吧?这张R、G、B的表,就是我们常说的调色板(Palette) 。既然用R,G,B
的量化值就可以直接记录一张位图的所有像素,那我们需要调色板干什么呢?首先,我们可以计算完全利用(R,G,B)组合来存储一个800×600的位图所需要的空间为:800×600×3 = 1440000(字节)= 1.37M(字节),3是记录每个像素RGB值所用的字节数,这里说的是24位图,RGB值就用来描述一个像素,,位图是由像素组成的,,因此用一张位图大小乘它的像素数就可以直接描述一张位图,惊人的大!因此,调色板横空出世了,它的功能在于缓解位图文件存储空间(显存或系统内存)过大的问题 。在win os
中存在三种调色板,,硬件调色板,逻辑调色板,系统调色板,,winos用"调
色板管理器"机制来管理调色板,,调色板存在于一个位图文件中,一个窗体的DC中,,或OS中,,硬件调色板就是显卡适配器所能实际表达的颜色深度,,逻辑调色板就是winos通过调色板管理机制为每个窗体应用程序DC
7
分配的调色板(系统调色板只有一个,而逻辑调色板可以有多个,,它的本质就是一块内存中的区域用于描述当前应用使用到的调色板,我们都知道调色板是一个结构),,所以逻辑调色板的用途在于模拟硬件调色板,,以使windows作为一个os可以为界面显示,图像显示等应用提供它们各自专用的活动的调色板,,当逻辑调色板色深小于或大小硬件调色板时,,winos通过调色板管理机制自动让二者谐和,,系统调色板就是winos当前正在使用到的调色板,逻辑调色板可以通过调色板管理机制转变为当前系统调色板,,,但是不管winos的调色板管理机制如何,,最终的调色板都要靠硬件调色板来实现 。
2.2.2 bmp文件格式
BMP(全称Bitmap)是Window操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广 。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大 。BMP文件的图像深度可选lbit、4bit、8bit 及24bit 。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序 。由于BMP文件格式是Windows环境中交换与图有关的数据的一种标准,因此在Windows环境中运行的图形图像软件都支持BMP图像格式 。
BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成 。文件头主要包含文件的大小、文件类型、图像数据偏离文件头的长度等信息;位图信息头包含图象的尺寸信息、图像用几个比特数值来表示一个像素、图像是否压缩、图像所用的颜色数等信息 。颜色信息包含图像所用到的颜色表,显示图像时需用到这个颜色表来生成调色板,但如果图像为真彩色,既图像的每个像素用24个比特来表示,文件中就没有这一块信息,也就不需要操作调色板 。文件中的数据块表示图像的相应的像素值,需要注意的是:图像的像素值在文件中的存放顺序为从左到右,从下到上,也就是说,在BMP文件中首先存放的是图像的最后一行像素,最后才存储图像的第一行像素,但对与同一行的像素,则是按照先左边后右边的的顺序存储的;文件存储图像的每一行像素值时,如果存储该行像素值所占的字节数为4的倍数,则正常存储,否则,需要在后端补0,凑足4的倍数 。


稿源:(未知)

【傻大方】网址:/a/2021/0402/0021244160.html

标题:基于VC++的图像融合技术的实现( 四 )


上一篇:基于单片机的电子万年历

下一篇:基于单片机出租车计费器的设计