- 1、本文档共69页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[计算机软件及应用]数字图像处理VC编程实现
编程实现方法 Visual C++图像处理编程 MATLAB图像处理编程 基于开源库OpenCV的图像处理编程 基于其他库的图像处理编程 图像处理的VC++编程 VC++编程环境简介 图像编程基础 图像格式的理解 BMP文件格式及读写 程序范例 VC开发环境简介 VC编程需要的知识C/C++语言;对Windows操作系统的了解(底层编程);微软类库MFC(Microsoft Foundation Class) Visual C++是一个可视化集成开发环境 掌握‘工程’的概念 菜单使用介绍、Debug/Release区别等等 VC开发的两种方式(一) SDK(software development kit)方式又称WIN32API(应用程序接口)编程即直接调用32位Windows(WIN32)操作系统提供的接口函数进行编程。 SDK编程(VC中)使用的语言是C语言。 适合底层编程和对速度要求较高的环境,比如游戏开发、驱动开发、数字图形等 看图像打开、高斯噪声绘制的例子 VC开发的两种方式(二) MFC方式又称类库编程,即程序主要不再直接跟操作系统API打交道(在需要的时候也可以调用API),而是使用封装好的C++类库。 MFC编程的好处之一:可以使用MFC向导来生成程序框架,提高效率 在这堂课中后面讲的程序都是MFC程序 文档/视图的概念 文档/视图结构是Windows窗口结构中的标准形式。 在单文档窗口程序中,生成一个单文档模板和窗口视图对应,这时视图是由窗口生成的。 在多文档界面中,窗口类只生成主框架,而子窗口和子视图有文档模板生成。 视的概念 视结构是窗口中的客户区,用户可以在视区中画文字、画图像等等任意的屏幕的写操作。 WindowsGUI对视结构做了优化,用户可以方便的调用MFC类库中的相关类完成复杂的任务。 开始程序设计 1、声明一个文件操作类:CFileRW 2、在文件类内完成对BMP文件的读写操作。 3、在CDoc类中调用CFileRW类的实例完成运算工作,同时在Doc中响应菜单的消息命令。 4、在CFileRW中创建存放文件数据的堆变量数组,并以指针的形式完成调用。 5、在Doc中实现对堆数组的用后删除。 三基色 图像的大小 有一个长宽各为200个象素,颜色数为16色的彩色图,每一个象素都用R,G,B三个分量表示,因为每个分量有256个级别,要用8位即一个字节来表示,所以每个象素需要用3个字节。整个图象要用200*200*3,约120k字节。 这幅图中最多只有16种颜色,我们可以用一个表:表中的每一行记录一种颜色的R,G,B值。这样当我们表示一个象素的颜色时,只需要指出该颜色是在第几行,即该颜色在表中的索引值。举个例子,如果表的第0行为255,0,0(红色),那么当某个象素为红色时,只需要标明0即可。 再来计算一下:16种状态可以用4位表示,所以一个象素要用半个字节。整个图象要用200*200*0.5,约20k字节,再加上表占用的字节为3*16=48字节。整个占用的字节数约为前面的1/6! BMP位图文件类型 颜色深度的不同,就产生不同种类的图像文件,在计算机中常使用如下类型的图像文件: 单色图像(黑白) 灰度图像 伪彩色图像(8位和16位位图) 24位真彩色图像 32位真彩色图像 BMP文件的标准格式 BMP文件存储格式(BMP VC中的描述) 位图文件头(第一部分) 第一部分为位图文件头BITMAPFILEHEADER,是一个结构,其定义如下: 这个结构的长度是固定的,为14个字节(WORD为无符号16位整数,DWORD为无符号32位整数) 位图信息头(第二部分) biSizeImage字段 biSizeImage 指定实际的位图数据占用的字节数,其实也可以从以下的公式中计算出来: biSizeImage=biWidth‘ *biHeight 要注意的是:上述公式中的biWidth‘必须是4的整倍数(所以不是biWidth,而是biWidth‘ ,表示大于或等于biWidth的,离4最近的整倍数。举个例子,如果biWidth=240,则biWidth‘ =240;如果biWidth=241,biWidth‘ =244) 一定要注意:每行所占字节长度始终是4的倍数,或者每行所占位长度是32的倍数。如果不是,则需要补齐 调色板/颜色表(第三部分) 调色板实际上是一个四元数组,则有2的biBitCount次方个元素。数组中每个元素的类型是一个RGBQUAD结构,占4个字节。 typedef struct tagRGBQUAD{ BYTE rgbBlue; //蓝色分量 BYTE rgbGre
您可能关注的文档
最近下载
- 牙齿健康和龋齿预防科普知识ppt(共67张PPT).pptx VIP
- 2024年10月 政法干警锻造新时代政法铁军专题研讨班发言材料.docx VIP
- 反恐验厂-危机管理和应急恢复计划.doc
- 2024.10 政法干警锻造新时代政法铁军专题研讨班发言材料.docx VIP
- 六年级上册快乐读书吧知识测试题及答案.pdf VIP
- 北京字节跳动科技有限公司运营模式分析及发展趋势预测研究报告.docx VIP
- 《财务风险管理—以乐视公司为例》10000字.docx
- 人教八年级上册物理《光的反射》PPT教学课件.pptx
- 信息资源管理专业毕业设计论文:信息资源管理在学校教育中的应用研究.docx VIP
- 网络安全项目网络建设方案.doc
文档评论(0)