WIA :一个图形处理软件

更新时间:2024-09-20 21:03

WIA(Windows Image Acquisition)是一个图形处理软件,也是微软操作系统的影像获取体系结构,属于Windows操作系统驱动程序类。

主要功能

Windows图像采集

Windows图像采集(WIA)是最新imaging技术,在WindowsMillenniumEdition中引入,包含在更高版本的MicrosoftWindows操作系统中(例如Windows XP,注意WinNT3,WinNT4和Windows 2000不支持WIA)。WIA提供广泛的支持以启用imaging设备,如扫描仪和数码相机,以与图像应用程序(例如,MicrosoftPicture2000和Adobe Photoshop)对接。

WIA之前的成像设备行业标准是TWAIN标准。

使用WIA,制造商只需要写WIAmicrodriver以允许设备使用。这类似于打印制造商提供minidriver,而其他WIA组件由操作系统实现。

使用WIA,独立硬件供应商(IHV)可集中编写代码以提高设备功能。

WIA和TWAIN的关系是,WIA是微软操作系统的影像获取体系结构,属于Windows操作系统驱动程序类;而TWAIN是开放协议,用来解决应用软件对不同影像外设的可移植性调用。应当说,WIA是驱动层上的东西,它为应用程序提供SDK接口;而TWAIN协议在驱动程序和应用程序间提供一个公用接口。TWAIN的层次高于WIA。

关于WIA

WIA是WindowsImageAcquisition的简称,当前可用版本是WIA1.0,它是WindowsMillenniumEdition(Windows ME)或者更高版本的Windows系统中提供的数字图像获取服务,同时它也能用于管理数字图像设备。

WIA接口既是应用程序接口(WIAAPI),又是设备驱动程序接口(WIADDI),下面要讲述的都是有关WIAAPI的内容。

通过WIAAPI,应用程序可以:

运行在强壮稳定的环境中;

最大可能地减少协同配合问题;

枚举可用的图像获取设备;

同时连接多个设备;

用标准的、可扩展的方式查询设备属性;

用标准的、高性能的传送机制获取数据;

在数据传送过程中维持图像属性;

获取大量的设备事件通知消息。

WIA架构

WIA是使用进程外(Outofprocess)服务实现的COM组件,和大多数进程外服务程序不同的是,WIA通过提供自己的数据传送机制(IWiaDataTransfer接口),避免了图像数据传送过程中的性能损失。高性能的IWiaDataTransfer接口使用共享内存来传送数据给客户程序。

WIA有三个主要的组件:DeviceManager,MinidriverServiceLibrary和DeviceMinidriver。

DeviceManager:枚举图像设备,获取设备属,为设备建立事件和创建设备对象;

MinidriverServiceLibrary:执行所有设备无关的服务;

DeviceMinidriver解释映射:WIA属性和命令到特定的设备。

工业无线网络WIA

简介

工业无线网络WIA(WirelessNetworksforIndustrialAutomation)技术是由中科院沈阳自动化所推出的具有自主知识产权的高可靠、超低功耗的智能多跳无线传感器网络技术,该技术提供一种自组织、自治愈的智能Mesh网络路由机制,能够针对应用条件和环境的动态变化,保持网络性能的高可靠性和强稳定性。

工业无线网络WIA技术基于短程无线通信IEEE802.15.4标准,使用符合中国无线委会规定的自由频带,解决工厂环境下遍布的各种大型器械、金属管道等对无线信号的反射、散射造成的多径效应,以及马达、器械运转时产生电磁噪声对无线通信的干扰,提供能够满足工业应用需求的高可靠、实时无线通信服务。

通过使用工业无线网络WIA技术,用户可以以较低的投资和使用成本实现对工业全流程的“泛在感知”,获取传统由于成本原因无法在线监测的重要工业过程参数,并以此为基础实施优化控制,来达到提高产品质量和节能降耗的目标。

工业无线网络WIA技术主要应用于石油、石化、冶金、环保、污水处理等领域。

技术体系

工业无线网络WIA技术体系是由中国工业无线联盟推出的具有自主知识产权的技术体系,形成了国家标准草案,并与WirelessHART、ISA100并列为主流的工业无线技术体系。

WIA网络采用星型和Mesh结合的两层网络拓扑结构。第一层是Mesh结构,由网关设备及路由设备构成;第二层是星型结构,由路由设备及终端设备或手持设备构成。

网关:负责WIA网络与工厂内的其它网络的协议转换与数据映射;

冗余网关:负责网关的热备份;

网络管理者:负责构建由路由设备构成的Mesh网络;监测全网性能;

安全管理者:负责路由设备及终端设备的密钥管理与安全认证;

WIA网络的协议栈结构遵循ISO/OSI的层次结构,但只定义了物理层、数据链路层、网络层、应用层。

WIA协议栈由协议层实体,包括数据链路层、网络层、应用层(由应用支持子层、用户应用进程、设备管理应用进程构成)、功能模块及层实体间的数据接口和管理接口构成。数据链路层、网络层和应用支持子层包含的功能模块有:数据实体和管理实体。用户应用进程包含的功能模块是多个用户应用对象。设备管理应用进程包含的功能模块有:设备管理模块、网络管理模块、安全管理模块、网络管理代理模块、安全管理代理模块、管理信息库。

技术特征

WIA网络采用了以下措施保障工业环境中无线通信的高可靠性:

1)TDMA避免了报文冲突

系统产用全网TDMA模式,并且全网的时间同步精度达到微秒级。

2)跳频通信方式提高了点到点通信的抗干扰能力

WIA技术使用多信道进行通信,通过TDMA/CSMA混合接入模式支持周期性和非周期性通信负载,在DSSS的基础上引入FHSS的思想,采用根据信道状态自适应跳频机制,可以有效地抑制突发性干扰,消除频率选择性衰减。

3)自动请求重传保证了报文传输的成功率

WIA技术在链路层采用自动请求重传机制,保证了点到点的报文传输成功率,在应用层采用面向连接的(connection-oriented)数据传输技术,通过端到端的重传机制保证数据传输的高可靠性。

4)Mesh路由提高了端到端通信的可靠性

WIA技术在网络层采用智能的Mesh网络技术。每个设备至少有两条可用的通信路径,设备加入网络后,可以自主选择或由网络管理者分配多条数据传输路径。当一条路径由于干扰被中断,设备可以自动切换到其它通信质量较好的路径。

5)设备冗余提高了系统的鲁棒性。

技术优势

WIA技术与国外同类技术相比较具有的技术优势主要有以下几点:

1)分层的组织模式,对网络拓扑的维护更加灵活、快速;

2)自适应的跳频模式与自动重传机制,对保障通信的可靠性更加有效;

3)支持网内报文聚合,有效地降低了网络开销,延长电池寿命;

4)兼容IEEE802.15.4标准,可以使用现有商用器件,易于实现;

5)兼容无线HART标准,支持HART命令,很容易升级传统仪表,为其增添无线通信功能;

6)用户可以方便地使用、管理,无需较高的专业知识。

操作指南

1.选择设备

应用程序既可以用WIA内置的对话框来选择设备,也可以不使用WIA的用户界面。

下面的程序将弹出一个WIA选择设备对话框:

2.获取图像到文件中

由于IWiaDevMgr::GetImageDlg()是以图片文件的形式返回数据的,有的时候并不能满足我们的需要,这时候我们就需要使用IWiaDataTransfer接口来传送图片。

3.获取内存中的图像数据

可以用IWiaDataTransfer接口来传送数据

使用WIA

1.选择设备

应用程序既可以用WIA内置的对话框来选择设备,也可以不使用WIA的用户界面。

下面的程序将弹出一个WIA选择设备对话框:

2.获取图像到文件中WIA获取图像非常简单,直接调用IWiaDevMgr::GetImageDlg(),它集成了SelectDevice和SelectImage对话框,在传送图像的时候还会自动出现一个进度指示对话框,下面是一个例子:

3.获取内存中的图像数据在IWiaDevMgr::SelectDeviceDlg()之后,可以用它返回的RootItem对象的IWiaItem::DeviceDlg()方法显示一个对话框浏览WIA设备中图片,请看下面的例子:

IWiaItem::DeviceDlg()返回选取的图片总数和每个图片的WiaItem指针,我们可以用用IWiaDataTransfer接口来传送图片。在传送每个WiaItem数据之前,应该先调用IID_IWiaPropertyStorage接口设置相应的属性:

如果用IWiaDataTransfer接口传送数据,我们还需要自己写代码实现IWiaDataCallback接口,其中在我们的IWiaDataCallback::BandedDataCallback()中可以接收到数据,例如:

然后,我们就可以用IWiaDataTransfer接口来传送数据了:

三、后话

WIA1.0在MSDN的文档地址是:MSDNLibrary-\u003e图形和多媒体\u003eWindows图像获取-\u003eWIA1.0。

另外,因为VisualC++6.0中没有WIA库,所以需要使用VisualStudioDoNET2002/2003编译WIA程序。

后注

WIA是Windows ME及其以后的操作系统中提供的,Windows 98/2000均不支持WIA,因此需要在较新版本的MSDNLibrary中才有WIA文档。

另外,因为VisualC++6.0中没有WIA库,所以需要使用VisualStudio2002/2003编译WIA程序。

最后得提到的是WIA的架构主件主要有:

扫描仪照相机向导

File Explorer用户界面

③WIA设备

④分类安装程序

⑤脚本接口

⑥TWAIN数据源管理程序和兼容性驱动程序

⑦通用系统对话框对象

⑧设备对象

⑨WIA设备管理程序

参考资料

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}
友情链接: