内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体






试析监控图像处理系统的软件结构与软件包(2)

时间:2008-07-11 来源:雷玉堂 作者:陈晓亮 点击:

    图像基础结构的核心部分以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图像基础结构的总体结构框图。StdImage结构代表了一个图像或图像序列,所有的功能几乎都围绕它进行。它可以利用ImageFile模块从图像文件装入图像,或者将图像写入文件中。在Windows环境下,为了显示或打印图像,通常会使用DIB,此外,像扫描仪、摄像机等还会以DIB的形式向计算机输入图像,因此图像基础结构设有DibStdImage模块,以便在DIB和StdImage之间进行快速转换。图像通信插入在网络和StdImage之间,由此可以实现图像的传输,而这种传输,是以内存为媒介,它具有速度快的优点。

图像处理软件包
    图像处理软件包通常是以菜单的形式出现的,在Windows操作系统的环境下来设计菜单形式的图像处理软件包,比在DOS操作系统的环境下容易得多,外设的管理和汉字的注释不再费事,而且用VisualC++编程,已有现成的菜单形式可以借用,这样可以集中精力去设计图像处理的算法。

    图像处理软件包分为专用图像处理软件包和通用图像处理软件包,专用图像处理都以软件处理为主,解决特定的问题。通用图像处理软件包主要采用菜单形式,其算法相对比较简单,只是要求具有一些初步的算法,但一定具有图像输入功能。

    菜单一般有多级,主菜单里可以分为几个大项,如文件管理、图像获取、图像编辑、图像二值化、边缘增强、图像量测、图像变换等,每一个菜单大项的下级菜单又分若干小项,现以单屏图像处理软件包为例,简要介绍菜单的各项内容。

文件管理
    这一项主要是图像的存盘和加载,有时把图像的打印也放在这一类里。图像的存盘和加载要解决两个主要的问题,一个是图像区域的确定,另一个是图像格式的规范。

    图像区域分为规则区域和不规则区域,规则区域通常指矩形区域,不规则区域通常指用鼠标器画出来的一个封闭的单连通区域。

    在规则区域的情况下,存储图像时常用鼠标器来确定所需存储的区域,加载时又可以用鼠标器来确定所加载图像的显示位置。图像处理常常按整幅图像来进行,有时也把区域分为整幅图像区域和局部图像区域,由于整幅操作不再需要鼠标器来确定区域,因此可以简化操作。

    规则区域图像的格式有自由格式和标准格式两种。对于灰度图像,自由格式文件的第一个字节为0,表示是灰度图像,后两个字节表示矩形区域的宽,接下来的两个字节表示矩形区域的高,随后是灰度图像数据,一个字节表示一个像素,每个像素按照从左到右、从上到下排列。对于彩色图像,常用RGB基色的彩色空间。其自由格式文件的第一个字节为1,表示是彩色图像,后两个字节表示矩形区域的宽,接下来的两个字节表示矩形区域的高,随后是彩色图像数据,三个字节表示一个像素,顺序是R,G,B,每个像素按照从左到右、从上到下的顺序排列。标准格式的图像文件有BMP,TIFF等格式,也有压缩存储的格式。

    不规则区域的图像存储和加载比一般矩形区域复杂,首先遇到的是区域边界的描述问题,一般有多边形描述方法和链码(chaincodes)描述方法。

    不规则的图像文件的结构。文件头是一个CHAIN-HEAD型的结构体的对象;链码数据就是从图像起始扫描点(xs,ys)开始,以顺时针方向沿区域外边界曲线行走得到的各个节点的数据,其数目由文件头的code_size确定;扫描线的位置数据是若干个CHAIN_SORT型结构体的对象,数目由文件头中的couple_size确定。

图像获取
    图像输入设备有摄像机、扫描仪等,要在菜单里嵌入这些设备的图像输入功能,就必须使用相应设备的设备驱动程序。当摄像机输入时,有两种状态:
(中国集群通信网 | 责任编辑:陈晓亮)

中国集群通信网,国内首家集群通信专业网站。

Copyright © PttCn.Net, All Rights Reserved.   

联系我们 联系我们 中国集群通信网 对讲机学堂 对讲机世界