浅析监控图像处理系统的软件结构
来源:电子工程世界 作者:—— 时间:2010-07-06 09:21
图像基础结构的核心部分以C/C++语言完成。因为C/C++语言编译效率高,执行速度快,这对于要处理大量数据的图像应用来说是非常关键的;且C/C++ 语言非常灵活,使得图像基础结构可以高效的实现,而用其他的语言实现某些相同的功能可能要花很大的精力;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之间,由此可以实现图像的传输,而这种传输,是以内存为媒介,它具有速度快的优点。
- •【会议议程】12月19-21日2022(十四届)传感器与MEMS产业化技术国际研讨会(暨成果展)佛山南海瞻云酒店召开2022-12-16
- •FORESEE XP1000 PCIe SSD开启Gen3后时代发展之路2021-08-02
- •FORESEE工规级SSD应用宽温技术,加速智能工业场景落地2021-07-21
- •基于J750EX测试系统的SRAM VDSR32M32测试技术研究2017-09-05
- •Vishay检查表: 采用安规电容防止过载的12点注意事项2017-07-28
- •汽车系统的USB供电2017-06-08
- •适用于 FPGA、GPU 和 ASIC 系统的电源管理2017-05-11
- •一文读懂SPI串行外设接口2017-04-27
- •TLV3501滞回比较器电路设计2017-04-14
- •ZigBee无线呼叫系统硬件电路2017-04-05