- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图片扫瞄器知识点小结
图像的编码和解码
能够对数据进行压缩并大大减少其数据量是因为数据存在大量的数据冗余,即存在冗余的、可预测的和不必要的数据。数据量(D)与其所表达的信息量(I)一般并不相等,它们之间存在如下关系:
I=D-du
du≥0
其中,du代表数据的冗余量,如冗余量du=0,则不需要也不能对数据进行有效压缩。即,需要并能够对数据进行有效压缩的条件是du0。而图像数据中广泛存在着数据冗余。数据冗余一般有4种形式,即统计冗余、信息熵冗余、结构冗余、知识冗余。
利用冗余进行图像数据压缩包括两个相反的过程。
数据编码:即对原始图像数据进行编码,以减小其数据量。
数据解码:即把编码压缩的图像数据还原成原始的表示形式。由于数据编码和数据解码是互逆的过程,只要研究好数据编码就能处理好数据解码。
根据冗余类型的不同,人们提出了不同的数据编码方法,根据不同的出发点可把数据编码方法进行不同的分类。
(1)以对编码数据在解码后能否完全一致的还原为原始数据为标准,可将数据编码方法划分为如下两类。
无失真编码(可逆编码):编码数据进行解码后的数据与编码前的原始数据完全相同,没有任何失真。
有失真编码(不可逆编码):编码数据进行解码后的数据与编码前的数据有一定的偏差或失真,但在视觉效果上基本相同。
(2)根据数据编码的实现原理可以把数据编码划分为预测编码、变换编码、信息熵编码、亚抽样与内插编码、矢量量化编码、基于神经网络的编码、分频带编码、结构编码、基于知识的编码和混合编码等10类。其中,信息熵编码中的哈夫曼编码(Huffman Coding)、LZW(Lempel Ziv Welch Compression)编码、游程长度编码(Run Length Coding)和算术编码(Arithmetic Coding)都是常用的无失真图像编码方式。
由于本设计并未涉及到上述所有的编码算法,故在此不再进行一一说明,在后面的内容中会对使用到的算法及其实现进行详细论述。
BMP图像
BMP图像,即通常所说的位图(Bitmap),是Windows系统中最为常见的图像格式。Windows 3.0以前的版本只支持与设备相关位图DDB(Device Dependent Bitmap)。DDB是一种内部位图格式,它显示的图像依计算机显示系统的设置不同而不同,因此一般不存储为文件,与通常所说的BMP图像不同。在Windows.h中,结构体BITMAP定义了DDB位图的类型、宽度、高度、颜色格式和像素位值等,代码如下:
typedef struct tagBITMAP
{
int bmType; //位图类型,必须设为0
int bmWidth; //位图宽度
int bmHeight; //位图高度
int bmWidthBytes; //位图中每一扫描行中的字节数
BYTE bmPlanes; //颜色层数
BYTE bmBitsPixel; //每一像素所占的位数
void FAR* bmBits; //存放像素值内存块的地址
}BITMAP;
DDB中不包括颜色信息,显示时是以系统的调色板为基础进行像素的颜色映射的。Windows只能保证系统调色板的前20种颜色稳定不变,所以DDB只能保证正确显示少于20色的位图。Windows SDK提供标准的DDB位图操作函数;MFC中定义了CBitmap类来说明DDB位图,其中封装了与DDB位图操作相关的数据结构和函数。
Windows 3.1以上版本提供了对设备无关位图DIB(Device Independent Bitmap)的支持。DIB位图可以在不同的机器或系统中显示位图所固有的图像。相对于DDB而言,DIB是一种外部位图格式,经常存储为常见的以BMP为后缀的位图文件(有时也以DIB为后缀)。因此,通常所说的BMP图像,即是DIB位图。
BMP位图文件包括4部分,即位图文件头结构BITMAPFILEHEADER、位图信息头结构BITMAPINFOHEADER、位图颜色表RGBQUAD和位图像素数据,BMP位图文件的结构如图3.1所示。
位图文件头结构BITMAPFILEHEADER 位图信息头结构BITMAPINFOHEADER 位图颜色表RGBQUAD 位图像素数据 图3.1 BMP位图文件的结构
下面介绍BMP文件头、BMP位图信息头、颜色表这3个结构体在Windows.h中的定义。
1. BMP文件头
BMP文件头含有BMP文件的类型、文件的大小、位图文件的保留字、位图数据距文件头的偏移量等信息。定义如下:
typedef struct tagBITMAPFILEHEADER
{
UINT bfType; //位图文件的类型,必须
原创力文档


文档评论(0)