MATLAB试验之模板匹配

模式识别

一、模式识别的概念

模式是一个客观事物的描述,是建立一个可以仿效的完善的标本。模式概念广泛地存在于人的社会之中,在自然中如图像、文字、声音和物体等。

模式识别是对感知信号(图像、视频和声音等)进行分析,对其中的物体对象或行为进行判别和解释的过程。

模式识别的一般过程包括以下几个步骤:信号预处理、模式分割、特征提取、模式分类和上下文后处理。信号预处理是通过消除信号、图像、视频中的噪声来改善模式和背景的可分离性;模式分割是将对象模式从背景分离或将多个模式分开的过程;特征提取是从模式中提取表示该模式结构或性质的特征并用一个数据结构来表示;在特征表示基础上,分类器将模式判别为属于某个类别或赋予其属于某些类别的概率;后处理则是利用对象模式与周围模式的相关性验证模式类别的过程。

二、模板匹配

在一个图像区域中,物体检测的一种最基本的方法是通过模板匹配来进行。在匹配过程中,所关注的物体(即模板)和图像区域中的所有的未知物体进行比较,如果模板和未知物体是匹配的,并且模板是足够精确的,则未知物体被标示为模板物体。

本次试验的模板匹配的思想:利用快速傅里叶变化的一个重要特性,即连个函数的卷积的傅立叶变换等于两个函数的傅立叶变换的乘积。

三、匹配步骤:

1、先处理模板,把模板转化成一个(800,600)的二值图像,再做一个匹配图像(图像中包含五个物体,其中有两个与模板图像一个图形,其他三个图形任意且要与模板图像有明显的差别);并转化为一个(800,600)的二值图像;

2、对图像进行傅立叶变换,分别对模板图像和匹配图像进行二维傅立叶变换。

3、计算模板图像与目标图像的相关性,方法是先将匹配图像旋转180度,然后基于快速傅里叶变换的卷积计算技术进行计算。(如果将卷积中心旋转180度,则卷积计算和相关计算是等价的。)

4、观察生成的频谱图像中的五个谱峰,找出其中的两个最高谱峰的位置。(最高的两个谱峰的位置就是与模板物体匹配。)

程序代码和相关步骤图像的显示:

%读出模板图像,并保存tif格式

figure(1);

x=imread('feijimoban.jpg');

imwrite(x,'feijimoban.tif');

image(imread('feijimoban.tif'));

axis image off;

%读出匹配图像,并保存tif格式

figure(2);

x=imread('feijituxiang.jpg');

imwrite(x,'feijituxiang.tif');

image(imread('feijituxiang.tif'));

axis image off

%把模板图像转为二值图像

X=imread('feijimoban.tif');BW=im2bw(X);

%把匹配图像转为二值图像

Y=imread('feijituxiang.tif');BW1=im2bw(Y);

%模板与匹配图像相关计算

figure(3);

A=fft2(BW);

A1=fftshift(A);

mesh(abs(A1));

figure(4);

B=fft2(rot90(BW1,2));

B1=fftshift(B);

mesh(abs(B1));

figure(5);

F=ifft2(A.*B);

F1=abs(rot90(fftshift(F),2));

mesh((F1),[-10 50]);

max(F1(:))

ans =

6222

thresh=6000;figure(6);imshow(F1>6000);

相关文档
最新文档