一般的,系统采用具有可编译性的软件平台,利用C语言、C++语言或者Visual C++。许多实际的车辆识别系统软件就是采用Visual C++编制的。可视化图形界面,运行稳定,运行效果好。本文采用的车型图像软件平台是用Visual C++编写的,界面友好,操作简单。
1.4.3车型图像仿真平台
Matlab拥有极为丰富的数据资源,友善的图像及图形界面,快速完备的可视化资源,更多的开发应用工具,启用用领域涉及到模式识别,信号处理,图像处理,小波变换,人工智能等,范围极为广泛。 本文决定用Matlab作为仿真工具原因如下:
(1)Matlab特别适合矩阵计算,内不具有许多矩阵函数、议程和计算公式。图像经过数据采集卡(即A/D转换),一般以矩阵形式(或数组形式)存放在计算机内部的,因此用Matlab处理,十分方便。
(2)Matlab内部具有丰富的神经网络函数,其可靠性和易用性可以缩短研究算法的周期。
(3)Matlab具有极强的图像显示功能,它提供了极好的的调试条件,可以根据现实的图像内容来修改和完善程序。
2002年8月,MathWorks公司推出了全新的MATLAB6.5正式版,其典型应用包括以下几方面: (1)数值计算 (2)字符计算 (3)数字信号处理 (4)建模和仿真模拟 (5)工程图形的绘制 (6)数据分析和结果的可视化
MATLAB有着强大的矩阵计算和图形处理能力,它由主程序和各种工具箱组成。其中主程序包含百个内部核心函数,而工具箱可大致分为两类:功能型工具箱和邻域型工具箱。MATLAB工具箱凝聚了各个领域专家的智慧,使它具有开放的体系结构和丰富的技术支持,本文就用到了其中的图像处理工具箱、信号处理
- - 6
工具箱等。
整个系统的流程图如图1-2所示。
开始读入车型图像背景剔除图像灰度化图像平滑去噪二值化处理二值反向拉普拉斯边缘检测横向填充纵向填充图像修正轮廓提取车型识别结束 图1-2系统流程图
- -
7
2车辆图像的分离与处理
2.1车辆图像的分离
本文将车辆图像从背景图像中分离出来用的是基于差分法的前景提取,这种方法为静止背景模型,通过对当前图像帧和背景模型进行比较,确定出亮度变化较大的区域,即认为是前景区域。
影响背景模型精确度的主要因素是场景中的光照条件、阴影变化、大面积运动区域和视频信号中的噪声等,它们都可能影响背景模型的有效性,在室内应用中阴影更为明显。根据适应环境的能力,可以将背景模型分为非适应和自适应两大类。
非适应背景模型一般为每个图像点建立一个静态统计模型,因此,当背景发生变化时需要人工重新初始化。否则,背景模型错误所引起的误差就不会不断积 累,影响算法的性能。自动适应背景模型则为每个图像点建立一个动态统计模型,通过不断地更新这个动态模型使其适应背景的变化。现在的视觉侦察系统已基本摒弃了前一种方法,而采用动态更新的自适应模型。背景消减也有它自身的缺点,比较严重的一点是当背景发生突然地变化时背景模型的响应速度不够快,这是因
为背景模型的更新是一个缓慢的过程,对背景的突然变化缺乏快速响应的能力。 由于考虑到设计时间和所学知识的局限,本文采取的前景差分为非适应的背景模 型。拍摄两幅图像,目标图和背景图。由于这两幅图像是连续拍摄得到的,因此从理论上说这两幅图像除目标车辆区域外的灰度值应该是完全一致的,但是由于关照变化的原因、车辆反光的角度影响,经过差分运算后,目标图像出现了大量的噪声,所以,继续用滤波的方法对图像进行去噪并且删除图像中小面积对象。差分处理的运算由matlab算法实现,经过差分计算前的原图如图2-1,背景图如图2-2,差分运算后的目标图像即车辆图像如图2-3。 Matlab算法实现差分运算:
i=imread('F:\\毕业设计\\原图1.jpg'); j=imread('F:\\毕业设计\\背景图.jpg'); figure;imshow(i);title('原图');
- -
8
figure;imshow(j);title('背景'); i1=rgb2gray(i); j1=rgb2gray(j); i2=medfilt2(i1,[3,3]); j2=medfilt2(j1,[3,3]); s=imsubtract(j2,i2); s=double(s);
figure,imshow(s);
图2-1 差分计算前的原图
- - 9
图2-2 背景图
图2-3 差分后的车辆图像
- - 10