图像获取及编辑处理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图像获取及编辑处理
图像获取及编辑处理
1 前言
完整的数字图像处理是一个很大的工程,在大体上可分为如下几个方面:图像信息的获取;图像信息的存取;图像信息处理;图像信息的输出和显示。

本文主要介绍图像信息的获取过程。

就数字图像的获取而言,主要是把一幅图像转换成适合输入计算机或数字设备的数字信号,这一过程主要包括摄取图像﹑光电转换及数字化等几个步骤。

通常图像获取的方法有如下几种:
(1)电视摄像机(Video Camera)
这是目前使用最广泛的图像获取设备。

早期主要有光电摄像管﹑超清晰摄像管等。

近年来,主要是采用CCD摄像设备。

该设备有如下特点:
特点:设备小巧﹑速度快﹑成本低﹑灵敏度高。

缺点:灰度层次较差,非线形失真较大,有黑斑效应,在使用中需要校正。

目前,CCD摄像机在分辨率,灵敏度等方面已做到较高水平,如:1920×1035或1024×1024的高分辨率的CCD摄像机已很成熟。

(2)飞点扫描器(Flying point scanner)
这是一种以光源做扫描的图像获取设备。

其特点是:精度较高﹑图像清晰,可透射成像亦可放射成像,但是其体积略显庞大。

(3)扫描鼓
这是一种高精度的滚桶式的图像摄取设备。

特点:精度高﹑分辨率高,可以输入也可以输出。

缺点:价钱昂贵﹑速度低﹑维护要求高。

多用于静止图像的输入﹑输出设备。

(4)扫描仪
特点:精度和分辨率中等,600DPI精度的扫描仪已常见。

扫描仪的成本很低,近几年尤其降价显著,一般台式的已有不足一千元的产品。

所以是当今应用最为广泛的图像信息获取设备。

缺点:速度较慢,非实时设备。

(5)显微光密度计:精度较高,速度较低。

(6)遥感中常用的图像获取设备已有多种,如:
图像获取及编辑处理
光学摄影:摄像机﹑多光谱像机等。

红外摄影:红外辐射仪﹑红外摄像仪﹑多通道红外扫描仪。

MSS:多光谱扫描仪。

微波:微波辐射计,侧视雷达﹑真实空孔径雷达﹑合成孔径雷达(SAR)。

本次毕业设计所选用的图像获取设备是扫描仪,在利用Visual C++ 6.0编程后,接着运行生成了支持图像扫描功能的编辑软件,在计算机终端接上扫描仪并在Windows 98环境下安装驱动程序后,就可以实现对物体的扫描及打印输出功能了,从而达到图像获取的目的。

2 选题背景
2.1该课题的来源目的及意义
本设计课题是老师不久前完成的一个科研项目,该成果是有关石油行业岩心图像采集技术、岩心图像处理技术和岩心图像数据库技术的研究。

本设计只截取岩心图像处理技术中的部分进行学习研究,研究数字图像的获取处理方法。

图像处理就是对图像信息进行加工以满足人的视觉心理或应用需求的行为,图像处理的手段有光学方法和电子学(数学)方法。

前者已经有很长的发展历史,从简单的光学滤波到现在的激光全息技术,光学处理理论已经日趋完善,而且处理速度快,信息容量大,分辨率高,又很经济,但是光学处理图像精度不够高,稳定性差,操作不便。

从20世纪60年代起,随着电子技术和计算机技术的不断提高和普及,数字图像处理进入高速发展时期。

所谓数字图像处理就是利用数字计算机或者其他数字硬件,对从图像信息转换而得的电信号进行某些数学运算,以提高图像的实用性。

例如从卫星图片中提取目标物的特征参数,三维立体断层图像的重建等等。

数字图像处理技术精度比较高,而且还可以通过改进处理软件来优化处理效果。

但是,由于数字图像处理的数据量非常庞大,因此处理速度相对较慢,这就限制了数字图像处理的发展。

随着计算机技术的飞速发展,计算机的运算速度大大提高,目前1GHz以上的CPU已经开始推广应用,这将大大促进数字图像处理技术的发展。

数字图像处理的英文名称是“Digital Image Processing”。

通常所说的数字图像处理是指用计算机进行的处理。

总的来说,数字图像处理包括以下几项:点运算、几何
处理、图像增强、图像复原、图像编码、图像重建等。

目前数字图像处理的应用越来越广泛,已经渗透到工业、医疗保健、航空航天、军事等各个领域,在国民经济中发挥越来越大的作用。

其中最典型的应用有:
(1)摇感技术中的应用
遥感图像处理的用处已越来越大,并且其效率和分辨率也越来越高。

它被广泛的应用于土地测绘、资源调查、气象监测、环境污染监督、农作物估产和军事侦察等领域。

目前遥感技术已经比较成熟。

但是还必须解决其数据量庞大、处理速度慢的缺点。

(2)医学应用
图像处理在医学上有着广泛的应用。

其中最突出的临床应用就是超声、核磁共振、γ相机和CT等技术。

在医学领域利用图像处理技术可以实现对疾病的直观诊断和无痛、安全方便的诊断和治疗,受到了广大患者的欢迎。

(3)安全领域
利用图像处理的模式识别等技术。

可以应用在监控、指纹档案管理等安全领域中。

目前有清华大学工程物理系开发研制的大型集装箱检测系统,就是利用图像处理技术来实现全自动集装箱检测,从而加快了海关的工作效率,为打击走私立下了汗马功劳。

(4)工业生产
产品的无损检测也是图像处理技术的一项广泛的应用。

总之,图像处理技术的应用是广泛的,它在国家安全、经济发展、日常生活中充当着越来越重要的角色,对国计民生有着不可忽略的作用。

2.2 国内外发展概况
数字图像处理最早出现于20世纪50年代,当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息。

数字图像处理作为一门学科大约形成于20世纪60年代初期。

早期的图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。

图像处理中,输入的是质量低的图像,输出的是改善质量后的图像,常用的图像处理方法有图像增强、复原、编码、压缩等。

首次获得实际成功应用的是美国喷气推进实验室(JPL)。

他们对航天探测器徘徊者7号在1964年发回的几千张月球照片使用了图像处理技术,如几何校正、灰度变换、去除噪声等方法进行处理,并考虑了太阳位置和月球环境的影响,由计算机成功地绘制出月球表面地图,获得了巨大的成功。

随后又对探测飞船发回的近十万张照片进行更为复杂的图
像处理,从而获得了月球的地形图、彩色图及全景镶嵌图,获得了非凡的成果,为人类登月创举奠定了坚实的基础,也推动了数字图像处理这门学科的诞生。

在以后的宇航空间技术,如对火星、土星等星球的探测研究中,数字图像处理技术都发挥了巨大的作用。

数字图像处理取得的另一个巨大成就是在医学上获得的成果。

1972年英国EMI公司工程师Housfield发明了用于头颅诊断的X射线计算机断层摄影装置,也就是我们通常所说的CT(Computer Tomograph)。

CT的基本方法是根据人的头部截面的投影,经计算机处理来重建截面图像,称为图像重建。

1975年EMI公司又成功研制出全身用的CT装置,获得了人体各个部位鲜明清晰的断层图像。

1979年,这项无损伤诊断技术获得了诺贝尔奖,说明它对人类作出了划时代的贡献。

与此同时,图像处理技术在许多应用领域受到广泛重视并取得了重大的开拓性成就,属于这些领域的有航空航天、生物医学工程、工业检测、机器人视觉、公安司法、军事制导、文化艺术等,使图像处理成为一门引人注目、前景远大的新型学科。

随着图像处理技术的深入发展,从70年代中期开始,随着计算机技术和人工智能、思维科学研究的迅速发展,数字图像处理向更高、更深层次发展。

人们已开始研究如何用计算机系统解释图像,实现类似人类视觉系统理解外部世界,这被称为图像理解或计算机视觉。

很多国家,特别是发达国家投入更多的人力、物力到这项研究,取得了不少重要的研究成果。

其中代表性的成果是70年代末MIT的Marr提出的视觉计算理论,这个理论成为计算机视觉领域其后十多年的主导思想。

图像理解虽然在理论方法研究上已取得不小的进展,但它本身是一个比较难的研究领域,存在不少困难,因人类本身对自己的视觉过程还了解甚少,因此计算机视觉是一个有待人们进一步探索的新领域。

3 过程论述
初次进行数字图像的获取时,分辨率—(Resolution)这个概念经常令人感到混乱。

在这里谈一下图像获取中利用扫描仪进行扫描时设备的分辨率。

3.1扫描仪分辨率
扫描仪分辨率指的是扫描仪的解析极限,表示的方法和打印机分辨率相当类似,一般也以DPI来表示。

不过正如前面所指出的那样,这里的点是指样点,与打印机的输出点是不同的。

扫描仪的分辨率在纵向是由步进马达的精度来决定的,而横向则是由感光元件的密度来决定的。

图像获取及编辑处理
一般台式扫描仪的分辨率可以分为两种规格,第一种是光学分辨率,指的是扫描
仪的硬件所真正扫描到的图像分辨率,目前市场上的产品级可以达到800—1200dpi 以上。

第二种则是输出分辨率,这是通过软件强化以及内插补点之后所产生的分辨率,大约为光学分辨率的3—4倍左右。

所以当你见到一台分辨率号称2400dpi的扫描仪时,不要大惊小怪,先要看清楚这是光学分辨率还是输出分辨率。

在扫描一幅数字图像之前所作的操作,将影响到最后图像文件的质量和使用性能。

而其中很重要的一步就是确定扫描分辨率,它取决于图像将以何种方式显示或打印。

如果扫描图像用于640×480象素的屏幕显示,则扫描分辨率不必大于一般显示器屏幕的设备分辨率,即一般不超过120DPI。

但在大多数情况下,扫描图像是为以后在高分辨率设备上输出而准备的,此时就需要采用较高的扫描分辨率。

如果图像扫描分辨率过低,图像处理软件可能会用单个象素的色值去创造一些半色调的点,这会导致输出的效果非常粗糙。

反之,如果扫描分辨率过高,则数字图像中会产生超出打印所需要的信息。

例如采用高于打印机网屏分辨率两倍的扫描分辨率产生的图像,在打印输出时就会使图像色调的细微过渡丢失,导致打印出的图像过于呆板无味。

那么,应如何正确地设置扫描分辨率呢?一般情况下应使用打印输出的网屏分辨率、扫描和输出图像尺寸来计算正确的扫描分辨率。

其步骤如下:
1)用输出图像的最大尺寸乘以网屏分辨率,然后再乘以网线数比率(通常情况下为2:1),得到该图像所需象素总数。

2)用象素总数除以扫描图像的最长尺寸即得到最优扫描分辨率。

用公式来描述即为:图像扫描分辨率=输出图像最长尺寸×网屏分辨率×网线数比率/扫描图像最长尺寸例如,扫描图像宽2英寸、高3英寸,需要打印机输出图像的宽为5英寸、高为6英寸,使用打印机的网屏分辨率为150epi,网线数比率为2:1。

图像扫描分辨率=6×150×2/3=600DPI
上面我们介绍了这几种主要的分辨率,最后请大家在进行图形图像处理和应用程序设计时加以注意:虽然分辨率越高,所呈现出来的图像质量也越高,但这是要付出
代价的,分辨率越高,则图像文件就会越大,所占的内存也会越多。

3.2 TWAIN标准简介
1990年,由Aldus、Caere、Eastman Kodak、Hewlett-Packard(HP)和Logitech
图像获取及编辑处理
五家公司发起,Adobe、Howtek和 Software Architects三家公司积极参与,成立了以Kevin为主席的TWAIN工作组。

TWAIN工作组的目标是建立一个开放的、多平台的解决方案,实现光栅输入设备(典型的如扫描仪)和应用软件系统之间的有效连接。

TWAIN标准的设计工作起始于1991年1月,并于1992年2月公布了TWAIN标准的第一个版本--TWAIN version 1.0;1993年1月,公布了TWAIN Version 1.1,1993年5月,TWAIN工作组对TWAIN标准的部分文档和技术规范进行了进一步的修改和完
图3-2 TW AIN的基本组成示意图
善,公布了TWAIN version 1.5。

目前的最新版本是于1997年9月公布的TWAIN version 1.7。

TWAIN标准的设计工作遵循以下五个原则。

第一,便于采用的原则。

软件开发者只要对其应用系统稍作修改,就可以使用TWAIN的最基本的功能,并能够进一步深入开发。

第二,具有可扩展性的原则。

TWAIN的结构要适合于多种计算机平台,包括Macintosh、MS-Windows和Mdif等;支持多种类型的数据,目前,TWAIN只支持光栅图像数据,以后,将进一步支持文本数据、传真数据和矢量图形等等。

第三,集成的原则。

第四,易于进行应用系统和设备资源相互连接的原则。

建立一个简单的用于设备资源确认和选择的“机构”,应用系统可以通过简单的API(Application Programming Interface,应用编程接口)驱动这一机构,使其完成应用系统和设备资源之间相互的连接和数据交换。

第五,包含人机界面的原则。

每种设备资源必须提供完整的人机界面,从而使应
过程论述
用系统可以直接选用这种界面,不必使用设备资源去控制物理设备。

TWAIN标准的建立,为软件开发者和硬件生产厂家提供了统一的连接规范,避免了重复开发和系统设备不兼容的问题。

3.3 TWAIN标准的基本组成部分
如前所述,TWAIN定义了应用软件和图像设备资源之间进行信息交换的软件协议标准和应用编程接口(API)。

TWAIN标准的最基本和主要的组成部分如图3-2所示,包括三个部分。

①应用软件。

软件开发者必须按照TWAIN的规范修改应用程序。

②设备资源管理器。

这部分软件由TWAIN工作组提供,用于选择设备的类型,协调应用软件与设备资源底层驱动之间的信息交换和通讯管理。

在MS-Windows环境下,设备资源管理器就是TWAIN.DLL。

③设备驱动资源。

这部分软件由硬件生产厂商提供,用来按照TWAIN的规范控制图像设备的底层驱动。

通常,扫描仪的设备驱动资源为*.DS。

上述三个部分的协同工作、实现了应用软件和图像硬件之间的数据传送。

3.4 TWAIN标准的基本结构
TWAIN标准的基本结构由四个层次组成,这四个层次是应用层、协议层、获得层和设备层,其中协议层是TWAIN的主要内容。

如图3-4所示。

①应用层。

这一层由软件开发者完成,用户的应用软件在这一层运行。

TWAIN 标准描述了应用程序如何调用TWAIN的功能完成对设备驱动资源的访问。

②协议层。

这一层是TWAIN标准的主要内容,包含三部分内容。

第一部分是由应用软件提供的应用系统和TWAIN之间的接口;第二部分是TWAIN的设备资源管理器;第三部分是由硬件设备厂商提供的软件,设备驱动资源从设备资源管理器接收指令并返回图像数据和状态码。

③获得层。

在这一层,设备驱动资源通过设备资源管理器将图像数据传送给应用程序,设备驱动资源总是同时包含用户界面,完成对设备的控制。

当然如果有必要,软件开发者也可以提供自己的用户界面,控制设备驱动资源。

图像获取及编辑处理
④设备层。

这一层就是传统的特定设备,可以是实际的物理设备如扫描仪,也
可以是逻辑设备如图像数据库。

设备层将设备驱动资源的指令转换为硬件命令。

3.5 TWAIN标准的界面格式
当扫描仪的应用程序按照TWAIN标准从扫描仪读取图像时,对于用户而言,扫描过程能够在TWAIN的三个基本组成部分中反映出来。

①应用软件部分。

典型的情况是需要选择硬件设备,也就是选择扫描仪的类型,并发送扫描指令和接收扫描数据。

TWAIN标准建议软件开发者在文件(File)菜单中增加两个菜单项:
第一项:选择扫描仪…(Select Source…)
第二项:扫描图像…(Acquire…)
②设备资源管理器部分。

当用户选定了“选择扫描仪…”菜单项后,设备资源管理器提供一个选择资源对话框,列出全部可选的设备资源供用户选择。

当然,如果有必要,应用软件也可以设计自己的界面。

③设备驱动资源部分。

所有支持TWAIN的设备都提供一个适合于自己硬件的专门的用户界面。

当用户选定了“扫描图像…”菜单项后,设备驱动资源的用户界面
图3-4 TW AIN基本结构的四个层次
被启动。

同前面一样,如果有必要,应用软件也可以设计自己的界面。

过程论述
3.6 TWAIN的各部分之间的信息交换
TWAIN的三个组成部分之间的信息交换都通过两个入口函数,这两个入口函数是DSM_Entry()和DS-Entry()。

DSM(Data Source Manager)是数据资源管理器,DS(Data Source)是数据设备驱动资源,在使用扫描仪的情况下,数据设备驱动资源就是扫描仪驱动资源。

① 应用软件的主要目的就是要从扫描仪驱动资源读取图像数据,不过,应用软件并不直接从扫描仪驱动资源读数据,以保证设备无关。

所有的数据、指令信息和出错信息等,都是通过设备资源管理器,也就是TWAIN.DLL进行交换和管理的。

TWAIN定义了大约50种左右的操作指令,应用软件将其传送到设备资源管理器,并指明最终是传给设备资源管理器还是扫描仪驱动资源。

应用软件与设备资源管理器之间的信息交换都通过唯一的一个入口函数,即函数DSM_Entry()。

DSM_Entry()函数包括以下参数:。

用于标识信息源的数据结构。

信息传送目标:设备资源管理器或扫描仪驱动资源。

三个用来指定数据组(DG_)、数据参数类型(DAT_)和消息(MSG_)的参数。

一个指向传输数据的指针
函数DSM_Entry()的返回值标明函数调用是否成功。

② 设备资源管理器。

设备资源管理器是应用软件和扫描仪驱动资源之间的数据通道,允许用户选择扫描仪类型,并实现应用软件对扫描仪驱动资源的访问。

当应用软件调用DSM_Entry()时,如果信息传送目标是设备资源管理器,则设备资源管理器直接处理有关信息;如果信息传送目标是扫描仪驱动资源,则设备资源管理器将有关参数变换后,调用函数DS_Entry(),去操作扫描仪驱动资源。

此外,设备资源管理器还可以显示选择扫描仪类型对话框、完成扫描仪类型的选择以及打开和关闭扫描仪驱动资源。

③ 设备驱动资源(扫描仪驱动资源)。

扫描仪驱动资源接收到应用软件通过设备资源管理器传来的操作指令或者直接来自于设备资源管理器的操作指令后,根据这些指令处理有关信息。

如果操作成功,则向设备资源管理器送回图像数据及返回码,该返回码作为函数DSM_Entry()的返回值传回应用软件;如果操作不成功,则返回出错代码和相应的附加信息。

图像获取及编辑处理
3.7 TWAIN 的基于状态的协议
应用软件、设备资源管理器和扫描仪驱动资源之间的通讯必须有效地管理,从而完成图像数据的扫描。

在逻辑上,其处理过程中的各个状态必须是有序的。

TWAIN 定义了七种不同的状态,这七种不同的状态及其相互之间的转换关系如图
安打 ,激
图3-7 TW AIN 状态转换示意图
过程论述
3-7所示。

状态之间的转换通常是由应用软件或扫描仪驱动资源所产生的。

在TWAEN的基于状态的协议中,有两点值得特别说明:
第一,状态1、2和3都仅仅是设备资源管理器的状态,而且设备资源管理器的状态一定不会是状态4、5、6或7。

第二,状态4、5、6和7则都仅仅是扫描仪驱动资源的状态。

如果扫描仪驱动资源是打开的,其状态一定不会是状态1、2或3;反之,如果扫描仪驱动资源是关闭的、则没有状态。

如果应用软件同时使用多个扫描仪驱动资源或其它设备驱动资源,与应用软件相连的每一种驱动资源都有自己独立的运行过程,被打开后即处于各自的状态上而不受其它驱动资源的影响。

3.8 TWAIN的数据传输模式
TWAIN允许扫描仪驱动资源以一种不同的传输模式向应用软件传送扫描的图像数据。

① 这是缺省的TWAIN数据传输模式,所有的扫描仪驱动资源都必须支持这种模式。

对于应用软件来说,这种传输模式也是最容易实现的,不过,有时会有一些局限性,其局限性主要表现在两个方面,一是受DIB(Device Independent Bitmap,设备无关的位图)图像格式的限制;二是可提供的内存的限制。

在自然传输模式中,扫描仪驱动资源分配单一的内存块来存储扫描图像数据,同时给应用软件传送一个指向内存位置的指针,应用软件要在扫描结束后,负责释放内存块。

② 磁盘文件传输模式。

磁盘文件传输模式不要求所有的扫描仪驱动资源都必须支持,但TWAIN推荐扫描仪驱动资源支持这种模式。

应用软件需要建立一个用来存储扫描图像数据的文件,并确认文件的存取权限是既可以读,也可以写,以保证扫描仪驱动资源能够正确访问。

TWAIN提供让应用软件检测扫描仪驱动资源所支持的图像存储格式,应用软件可以根据这一信息,指定存储扫描图像数据的文件名和文件格式。

当图像数据非常庞大,自然传输模式由于受内存的限制而遇到困难时,磁盘文件传输模式是一种比较理想的选择。

磁盘文件传输模式比下面要讨论的内存缓冲传输模式容易实现得多、不过,磁盘文件传输模式比内存缓冲传输模式要慢一些,而且,应用软件在扫描结束后,要自己管理和访问图像文件。

程序设计过程论述
③ 内存缓冲传输模式。

同自然传输模式一样,内存缓冲传输模式也要求所有的扫描仪驱动资源都必须支持。

图像数据通过一个或多个内存缓冲区进行传输;用于缓冲区的内存由应用软件自行管理,负责分配和释放。

在内存缓冲传输模式中,图像数据以非格式化的位图方式进行传送。

应用软件必须不断检测扫描仪驱动资源在扫描过程中所传回的信息(TW_IMAGEINFO以及TW_IMGMEMXFER),从而知道每一个单独的缓冲区是否能正确存放图像数据。

如果采用自然传输模式或磁盘文件传输模式,扫描图像数据的传送一次完成。

内存缓冲传输模式则不同,应用软件必须建立一个循环,进行重复操作,从而完成不只一个缓冲区的图像数据的获取。

内存缓冲传输模式无论是在图像数据获取,还是在系统资源控制方面,都具有极大的适应性;不过,也就最不易实现,软件编程比自然传输模式和磁盘文件传输模式都要复杂得多。

目前,这种方法十分常用。

4 程序设计过程论述
4.1生成工程文件主框架
1)新建一个名为IORI的工程文件;
单击File菜单New菜单项,系统弹出的对话让我们选择所要创建的文件类型,这里的文件分成了Files,Project,Workspaces,Other documents四种大类型,每一个类型下面又包含许多具体的文件类型,选中Projects标签,标签下的工作区中列出的是各种不同的应用程序类型,比如dll类型的动态链接库,exe类型的可执行程序等,这里选中MFC AppWizard(exe)选项,表示要创建的是一个使用MFC基本类库进行编程的可执行程序,选好后在project name一栏中为程序起一个名字为IORI,在location一栏中为程序定义文件存放的目录,对话框右下角的platforms一栏中的Win32项表示要创建的程序是建立在32位的windows平台基础上。

单击OK按钮,就启动了使用MFC方式开发应用程序的 AppWizard功能。

2)在接下来的对话框中选择多文档应用程序(Multiple documents),其他设置默认,
然后单击NEXT按钮;
3)接下来几步默认,在Step 4 of 6 选择 Context-sensitive Help,其他默认,
然后打开Advanced…,设置文件格式为BMP,即所支持的文档类型为“bmp”。

相关文档
最新文档