- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
bmp的特效处理
随着科技的发展,图像处理技术已经渗透到人类生活的各个领域并得到越来越多的应用,但是突出的一个矛盾是图像的格式也是越来越多,目前图像处理所涉 及的主要的图像格式就有很多种,如TIF、JEMP、BMP等等,一般情况下,为了处理简单方便,进行数字图像处理所采用的都是BMP格式的图像文件(有 时也称为DIB格式的图像文件),并且这种格式的文件是没有压缩的。我们通过操作这种格式的文件,可以获取正确显示图像所需的调色板信息,图像的尺寸信 息,图像中各个像素点的亮度信息等等,有了这些数据,开发人员就可以对图像施加各种处理算法,进行相应的处理。这一点需要读者清楚。 BMP格式的图像 文件又可以分为许多种类,如真彩色位图、256色位图,采用RLE(游程编码)压缩格式的BMP位图等等。由于在实际的工程应用和图像算法效果验证中经常 要处理的是256级并且是没有压缩的BMP灰度图像,例如通过黑白采集卡采集得到的图像就是这种格式,所以我们在整个讲座中范例所处理的文件格式都是 BMP灰度图像。如果读者对这种格式的位图能够作到熟练的操作,那么对于其余形式的BMP位图的操作也不会很困难。
BMP灰度图像作为Windows环境下主要的图像格式之一,以其格式简单,适应性强而倍受欢迎。正如我们在上一讲中介绍过的那样,这种文件格式就是每一 个像素用8bit表示,显示出来的图像是黑白效果,最黑的像素的灰度(也叫作亮度)值为0,最白的像素的灰度值为 255,整个图像各个像素的灰度值随机的分布在0到255的区间中,越黑的像素,其灰度值越接近于0,越白(既越亮)的像素,其灰度值越接近于255;与 此对应的是在该文件类型中的颜色表项的各个RGB分量值是相等的,并且颜色表项的数目是256个。 结合这些问题,下面我们针对性的给出了操作灰度 BMP图像时的部分函数实现代码及注释。
???? 一、 BMP位图操作 首先我们回顾一下上讲中的重要信息:BMP位图包括位图文件头结构BITMAPFILEHEADER、位图信息头结构 BITMAPINFOHEADER、位图颜色表RGBQUAD和位图像素数据四部分。处理位图时要根据文件的这些结构得到位图文件大小、位图的宽、高、实 现调色板、得到位图像素值等等。这里要注意的一点是在BMP位图中,位图的每行像素值要填充到一个四字节边界,即位图每行所占的存储长度为四字节的倍数, 不足时将多余位用0填充。
有了上述知识,可以开始编写图像处理的程序了,关于在VC的开发平台上如何开发程序的问题这里不再赘述。在开发该图像处理程序的过程中,笔者没有采用面向 对象的方法,虽然面向对象的方法可以将数据封装起来,保护类中的数据不受外界的干扰,提高数据的安全性,但是这种安全性是以降低程序的执行效率为代价的, 为此,我们充分利用了程序的文档视图结构,在程序中直接使用了一些API函数来操作图像。在微软的MSDN中有一个名为Diblook的例子,该例子演示 了如何操作Dib位图,有兴趣的读者可以参考一下,相信一定会有所收获。 启动Visual C++,生成一个名为Dib的多文档程序,将CDibView类的基类设为CscrollView类,这样作的目的是为了在显示位图时支持滚动条,另外在 处理图像应用程序的文档类(CDibDoc.h)中声明如下宏及公有变量: 最后将程序的字符串表中的字符串资源IDR_DibTYPE修改为:\\nDib\\nDib\\nDib Files(*.bmp;*.dib)\\n.bmp\\nDib.Document\\nDib Document。这样作的目的是为了在程序文件对话框中可以选择BMP或DIB格式的位图文件。
1、 读取灰度BMP位图 可以根据BMP位图文件的结构,操作BMP位图文件并读入图像数据,为此我们充分利用了VC的文档视图结构,重载了文挡类的 OnOpenDocument()函数,这样用户就可以在自动生成程序的打开文件对话框中选择所要打开的位图文件,然后程序将自动调用该函数执行读取数据 的操作。该函数的实现代码如下所示: 上面的方法是通过CFile类对象的操作来读取位图文件的,它需要分析位图中的文件头信息,从而确定需要读取的图 像长度。这种方法相对来说有些繁琐,其实还可以以一种相对简单的方法读取位图数据,首先在程序的资源中定义DIB类型资源,然后添加位图到该类型中,将图 像数据以资源的形式读取出来,这时候就可以根据所获取的数据中的位图信息结构来获取、显示图像数据了。下面的函数实现了,该函数的实现代码如下所示:
2、 灰度位图数据的存储 为了将图像处理后所得到的像素值保存起来,我们重载了文档类的OnSaveDocument()函数,这样用户在点击Save或SaveAs子菜单后程序自动调用该函数,
您可能关注的文档
- 2010届高三一轮复习课件:硫及其化合物.ppt
- 2010年会计从业考试-会计基础知识点讲解.doc
- 2010年医用设备CDFI使用人员业务能力考评大纲2007版.doc
- 2010年广西区高二化学竞赛.doc
- 2010年春节值班工作总结最新.doc
- 2010年数三真题.pdf
- 2010年英语高考单项选择精练200题.doc
- 2010年诺贝尔化学奖获得者及其主要贡献.doc
- 2010年辽宁省锦州市中考数学试题及答案.doc
- 2010海淀区初一上第六单元字词测验及答案(新).doc
- 2024年03月江苏省盐城市射阳县卫生健康委员会直属事业单位校园招聘编制内医学类高层次和紧缺专业人才50人笔试历年专业考点(难、易错点荟萃)附带答案详解 .docx
- 2025年广州铁路职业技术学院单招语文2019-2024历年真题考点试卷含答案解析.docx
- 2025年江苏城市职业学院单招英语2014-2024历年真题考点试卷摘选含答案解析.docx
- 2025年河南轻工职业学院单招英语2014-2024历年真题考点试卷摘选含答案解析.docx
- 2025届北汽集团全球校园招聘正式开启笔试参考题库附带答案详解.pdf
- 2024年03月广东深圳市疾病预防控制中心选聘2人笔试历年专业考点(难、易错点荟萃)附带答案详解 .docx
- 2024年03月浙江舟山市卫生健康委员会部分直属事业单位招聘(第五批)宁波市考点考试笔试历年专业考点(难、易错点荟萃)附带答案详解 .docx
- 2025年泉州工程职业技术学院单招职业技能测试近5年真题考点含答案解析.docx
- 2025年宁夏工业职业学院单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析.docx
- 2025年首发集团校园招聘开启笔试参考题库附带答案详解.pdf
文档评论(0)