浅析监控图像处理系统的软件结构
的实现,而用其他的语言实现某些相同的功能可能要花很大的精力;C/C++语言移植性强,几乎可以移植到任何硬件和操作系统中。
图像基础结构的内部实现可以使用C++,但是对外接口一律使用C界面。因为C++的名字解析方法没有统一的标准,不同公司的C++编译器对相同的C++符号解析得到的名字可能完全不同,因此不同C++编译器生成的目标文件不能正确连接。这使得像Windows系统下具有C++接口的动态连接库(DLL)的应用不太可行,所以对外接口使用C语言则没有这个问题。
避免使用依赖于平台的声明、函数等,保持核心的可移植性。图像核心定义和代码只使用标准C数据类型和标准C库(ANSI)调用。当需要高端应用时,图像核心可以迅速移植到UNIX及其他平台,使整个应用具备较强的移植能力和伸缩性。
目前,图像基础结构包含如下模块:
·StdImage:图像数据结构核心以及对此核心进行操作的基本函数;
·ProgressStub:进度处理机制的定义和接口;
·VirtualFile:虚拟文件I/O界面;
·Vf_file:虚拟文件I/O的实际文件实现;
·Vf_memory:虚拟文件I/O的内存文件实现;
·ImageFile:虚拟图像文件读写界面;
·Jfit_file:虚拟图像文件读写界面的JPEG格式实现;
·Bmp-file:虚拟图像文件读写界面的BMP格式实现;
·Fgi_file:虚拟图像文件读写界面的自由灰度图像格式实现;
·DibStdImage:DIB(设备无关位图)与StdImage之间的转换;
·mess_util:难以归类的杂项辅助功能;
·ProgressWinHint:Windows下的一个进度处理机制实现;
·WinMessUtilities:Windows下的难以归类的杂项辅助功能。
由于面向帧存的图像硬件系统的结构,以图像帧存为核心,还包括图像的输入输出和处理等模块;而面向计算机内存的图像系统里,是以计算机内存为核心,同样包括有图像的输入输出和处理等模块。前者以整体硬件结构为主体,软件似乎只是图像处理和数据存储,后者以整体软件结构为主体,硬件则纳入软件的管理之下。这两种系统结构的差别很大,但从功能来讲,有其相似之处。
面向计算机内存的图像软件系统结构,称之为Windows图像基础结构,这种Windows图像基础结构的总体结构框图如图2所示。在图2中,StdImage结构代表了一个图像或图像序列,所有的功能几乎都围绕它进行。它可以利用ImageFile模块从图像文件装入图像,或者将图像写入文件中。在Windows环境下,为了显示或打印图像,通常会使用DIB,此外,像扫描仪、摄像机等还会以DIB的形式向计算机输入图像,因此图像基础结构设有DibStdImage模块,以便在DIB和StdImage之间进行快速转换。图像通信插入在网络和StdImage之间,由此可以实现图像的传输,而这种传输,是以内存为媒介,它具有速度快的优点。
- 基于Zigbee技术家用无线网络的构架(12-14)
- 无线通信领域中的模拟技术发展趋势(蜂窝基站)(09-22)
- 新一代移动通信系统及无线传输关键技术(06-19)
- 蜂窝移动通信基站电磁辐射对人体影响的探讨(04-10)
- 基站升级换代中平衡性能与成本(10-06)
- 在3G与Wi-Fi之间切换 H3C 运营商WLAN解决方案(01-15)