目标跟踪基于Kalman滤波跟踪视频运动目标matlab代码
Posted Matlab科研辅导帮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了目标跟踪基于Kalman滤波跟踪视频运动目标matlab代码相关的知识,希望对你有一定的参考价值。
1 简介
在智能监控系统中,通过帧差法对运动物体的识别,定位,利用卡尔曼滤波算法对目标运动进行预测,跟踪,从而控制摄像头转动,跟踪目标物,使目标物体始终出现监控画面的中心.在此采用卡尔曼滤算法,进行目标运动的预估,利用Matlab对其仿真.仿真结果显示跟踪效果非常好,证明采用该算法来跟踪动目标物有效可行,具有一定的研究价值.
2 部分代码
clear,clc
% 计算背景图像
Imzero = zeros(240,320,3);
for i = 1:5
Im{i} = double(imread(['DATA/',int2str(i),'.jpg']));
Imzero = Im{i}+Imzero;
end
Imback = Imzero/5;
[MR,MC,Dim] = size(Imback);
% Kalman滤波器初始化
R=[[0.2845,0.0045]',[0.0045,0.0455]'];
H=[[1,0]',[0,1]',[0,0]',[0,0]'];
Q=0.01*eye(4);
P = 100*eye(4);
dt=1;
A=[[1,0,0,0]',[0,1,0,0]',[dt,0,1,0]',[0,dt,0,1]'];
g = 6;
Bu = [0,0,0,g]';
kfinit=0;
x=zeros(100,4);
% 循环遍历所有图像
for i = 1 : 60
% 导入图像
Im = (imread(['DATA/',int2str(i), '.jpg']));
imshow(Im)
imshow(Im)
Imwork = double(Im);
%提取球的质心坐标及半径
end
pause(0.3)
end
% 画出球横纵坐标的位置
figure
plot(cc,'r*')
hold on
plot(cr,'g*')
%噪声估计
posn = [cc(55:60)',cr(55:60)'];
mp = mean(posn);
diffp = posn - ones(6,1)*mp;
Rnew = (diffp'*diffp)/5;
3 仿真结果
4 参考文献
[1]张长春, 黄英, & 杨刚. (2009). 卡尔曼滤波在跟踪运动目标中的应用及仿真. 现代电子技术(20), 54-56.
以上是关于目标跟踪基于Kalman滤波跟踪视频运动目标matlab代码的主要内容,如果未能解决你的问题,请参考以下文章