- 1、本文档共38页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第07章_图像处理与应用程序设计
第七章 图像处理与应用程序设计
数字图像本质上是由像素构成的二维矩阵,像素作为矩阵的元素,记录了图像的颜色,数
字图像的存在仅此而已。但是,人们通过对颜色数据进行深入的操作和加工,发展出丰富多彩
的图像处理技术,例如压缩编码、变换、滤波、边缘检测、恢复与重构、形态学处理、对象检
测、对象识别等等,这些应用涵盖从物理特征建模到高级语义识别的各个阶段。数字图像处理
是一个极富魅力且充满可能性的领域。然而,各种图像处理算法,本质上都是建立在像素操作
基础上的。本章首先介绍Windows 环境下最常用的图像开发工具,然后给出一个基本的Win 32
图像处理程序框架。接着利用这个程序框架实现一些典型的基于像素的图像处理,包括显示(正
立、倒立显示)、滤波、合成。最后,介绍一个水波纹模拟程序,这个示例展示了图像处理的妙
用,并解释了动画原理,读者还有机会了解双缓冲技术的应用。
7.1 图形图像开发包
7.1.1 GDI
GDI (Windows Graphics Device Interface )为程序员在视频显示器、打印机上使用图形、图
像和格式化文本打开了方便之门。Windows 应用程序并不直接访问图形硬件设备,而是由 GDI
代替应用程序与设备驱动打交道。
GDI 在应用程序与设备驱动之间架起了一座桥梁。驱动程序执行与硬件相关的功能,产生
实际的输出。而GDI 作为设备与应用之间的缓冲,为应用程序呈现出一个独立于设备的逻辑空
间,它屏蔽了物理空间的复杂性。
各种Windows 应用程序均可以使用GDI,但开发上主要支持C/C++语言,并在消息驱动架
构下工作。本教程应用GDI 进行图像处理开发。
7.1.2 Direct2D
Direct2D 是一种具有硬件加速功能的、立即模式(immediate-mode )的二维图形API 。它提
供高性能和高质量的二维图形、图像和文本处理功能。在设计上,Direct2D 能够与GDI、GDI+
以及Direct3D 互操作。Direct2D 主要面向大规模企业级开发应用,也是为下游开发者提供工具、
中间件、库的有力武器,服务器一端的图形技术也主要依赖 Direct2D ,此外,在设计高性能图
形界面、菜单甚至头戴显示器界面时,Direct2D 也是有用的开发平台。
运行Direct2D 需要Windows7 以上的操作系统,如果是服务器,则需要Windows Server 2008
R2 或Windows Server 8 SP2 或以上级别的平台。近年来,无论在传统的 PC 环境还是智能手机
等终端设备中,高质量图形图像应用都在不断增长。充分发挥诸如GPU 这样的硬件的潜能,并
使以往开发的GDI、GDI+等图形应用能够与高性能Direct2D 和Direct3D 应用互操作,已经成为
非常现实的需要。此外,传统的图形图像应用集中在客户端进行渲染,而在当今的服务计算环
境中,我们需要新的服务器端图形图像API 。
7.1.3 Windows Imaging Component (WIC )
Windows Imaging Component (WIC )是一组高性能图像处理API ,它独立于软件开发商、
硬件开发商,为开发者提供了一个统一的图像处理平台,支持各种标准格式,如TIFF、JPEG、
GIF、PNG 、BMP 以及HD Photo 等。WIC 在图像元数据操作方面为开发人员提供了很大的方便。
但是,WIC 并不直接提供绘制图像的功能,在WIC 基础上,程序员仍旧需要使用 GDI 等API
显示图像。
7.2 位图的基本操作
7.2.1 数据结构
BMP 图像格式文件通常由文件头、位图信息头、调色板(仅在8 位及其以下位图中出现)、
位图数据几个部分构成。为了操作文件的各个分部,程序需要一些特定的数据结构。
(1)BITMAPFILEHEADER
BITMAPFILEHEADER 是由Windows 系统提供的一个结构类型,用于操作BMP 文件头部。
代码 7-1 是 Windows.h 文件中提供的 BITMAPFILEHEADER 结构的语法。所以,当需要使用
BITMAPFILEHEADER 结构时,程序需要包含Windows.h 文件。实际上,由Visual Studio 自动
生成的API 程序都包含了Windows.h 文件。
代码7-1 Windows.h 文件中提供的BITMAPFILEHEA
文档评论(0)