%全搜索块匹配法
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的新会网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
%image(240x320),区域(搜索窗)个数(u,v)=(4,5),大小(x,y)=(60,64)
%块大小b(16x16)
clear all
%load mov; %q.avi
%read the AVI movie filename into the MATLAB movie structure mov,mov has two fields, cdata and colormap
mov=aviread('v2.avi');
g=[];
for t=50:80
mov(t).cdata=rgb2gray(mov(t).cdata);
%imshow(mov(t).cdata);% displays the intensity image .
g=cat(3,g,mov(t).cdata);
end
%image(240x320),区域(搜索窗)个数(u?v),大小(x?y)
%u=4;v=5;
x=60;y=64;
%块大小b(16x16)
b=16;
vectorv=[];
vectorh=[];
gr=[];
gr=cat(3,gr,g(:,:,1));
referenceframe=g(:,:,1);
imshow(g(:,:,1));
original(1)=getframe;
after(1)=getframe;
for t=2:30
t
% profile on
imshow(g(:,:,t))
original(t)=getframe;
currentframe=g(:,:,t);
mad=zeros(x-b,y-b);
vh=[]; vv=[];
j1=[];i1=[];
for u=1:4
for v=1:5
block=referenceframe(x*(u-1)+x/2-b/2+1 :x*(u-1)+x/2+b/2,y*(v-1)+y/2-b/2+1:y*(v-1)+y/2+b/2);
for m=(u-1)*x+1:u*x-b
for n=(v-1)*y+1:v*y-b
for i=1:b
for j=1:b
mad(m-(u-1)*x,n-(v-1)*y)=mad(m-(u-1)*x,n-(v-1)*y)+abs(double(block(i,j))-double(currentframe(m+i-1,n+j-1)));
end
end
end
end
mad;
mincolumn=min(mad);
[a,j1]=min(mincolumn);%j为水平位移
minrow=min(mad');
[s,i1]=min(minrow);%i为垂直位移
[j1,i1];
% vector=cat(3,vector,[j,i]);
vh=[vh,j1-25];%j为水平位移
vv=[vv,i1-25];%i为垂直位移
end
end
vhm=0;vvm=0;
for i=1:u*v
vhm=vhm+vh(i);
vvm=vvm+vv(i);
end
vhm=getint(vhm/u/v)
vvm=getint(vvm/u/u)
vectorv=[vectorv,vvm];
vectorh=[vectorh,vhm];
% vectorv=cat(3,vectorv,vvm);
% vectorh=cat(3,vectorh,vhm);
if vvm0
%vvm(dy)0,图currentframe相对于referenceframe向上运动了|dy|
a=zeros(abs(vvm),320);
guoduframe=[a;currentframe(1:240-abs(vvm),:)];
elseif vvm0
%vvm(dy)0,图currentframe相对于referenceframe向下运动了|dy|,
a=zeros(vvm,320);
guoduframe=[currentframe(1+vvm:240,:);a];
else
guoduframe=currentframe;
end
if vhm0
%vhm(dx)0,图currentframe相对于referenceframe向左运动了|dx|
c=zeros(240,abs(vhm));
buchangframe=[c,guoduframe(:,1:320-abs(vhm))];
elseif vhm0
%vhm(dx)0,图currentframe相对于referenceframe向右运动了|dx|
c=zeros(240,vhm);
buchangframe=[guoduframe(:,vhm+1:320),c];
else
buchangframe=guoduframe;
end
gr=cat(3,gr,buchangframe);
imshow(gr(:,:,t))
after(t)=getframe;
% profile report test-eig
end
到上搜索MotionEstimation和运动检测系统(修改后)可以找到相关例子
图像匹配的方法很多,一般分为两大类,一类是基于灰度匹配的方法,另一类是基于特征匹配的方法。
(1)基于灰度匹配的方法。也称作相关匹配算法,用空间二维滑动模板进行图像匹配,不同算法的区别主要体现在模板及相关准则的选择方面。
(2)基于特征匹配的方法。首先在原始图像中提取特征,然后再建立两幅图像之间特征的匹配对应关系。常用的特征匹配基元包括点、线、区域等显著特征。图像特征相比像素点数量杀过少很多,特征间的匹配度量随位置变化尖锐,容易找出准确的匹配位置,特征提取能大大减少噪声影响,对灰度变化、形变和遮挡有较强的适应力。
图像匹配的任务就是寻找同一场景的两幅或多幅图像中像素点之间的对应关系。我们研究的图像匹配方法主要是基于图像特征的方法,主要包括特征提取、特征描述和特征匹配三步。SIFT方法是目前效果较好的经典匹配方法,在我们的研究过程中,均是采用SIFT方法作为基准来评价我们提出的算法的。
SIFT匹配(Scale-invariant feature transform,尺度不变特征转换)是一种电脑视觉的算法用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量,此算法由 David Lowe 在1999年所发表,2004年完善总结.其应用范围包含物体辨识、机器人地图感知与导航、影像缝合、3D模型建立、手势辨识、影像追踪和动作比对.
局部影像特征的描述与侦测可以帮助辨识物体,SIFT 特征是基于物体上的一些局部外观的兴趣点而与影像的大小和旋转无关.对于光线、噪声、些微视角改变的容忍度也相当高.基于这些特性,它们是高度显著而且相对容易撷取,在母数庞大的特征数据库中,很容易辨识物体而且鲜有误认.使用 SIFT特征描述对于部分物体遮蔽的侦测率也相当高,甚至只需要3个以上的SIFT物体特征就足以计算出位置与方位.在现今的电脑硬件速度下和小型的特征数据库条件下,辨识速度可接近即时运算.SIFT特征的信息量大,适合在海量数据库中快速准确匹配.
2、SIFT特征的主要特点
从理论上说,SIFT是一种相似不变量,即对图像尺度变化和旋转是不变量.然而,由于构造SIFT特征时,在很多细节上进行了特殊处理,使得SIFT对图像的复杂变形和光照变化具有了较强的适应性,同时运算速度比较快,定位精度比较高.如:
在多尺度空间采用DOG算子检测关键点,相比传统的基于LOG算子的检测方法,运算速度大大加快;
关键点的精确定位不仅提高了精度,而且大大提高了关键点的稳定性;
在构造描述子时,以子区域的统计特性,而不是以单个像素作为研究对象,提高了对图像局部变形的适应能力。