目标跟踪基于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代码的主要内容,如果未能解决你的问题,请参考以下文章

Kalman 滤波用于自由落体运动目标跟踪问题

opencv目标跟踪怎么实现重新选择目标

目标跟踪基于matlab Kalman目标跟踪含Matlab源码 1119期

计算机视觉基于Kalman滤波器的进行物体的跟踪

如何使用OpenCV实现基于标记的定位

目标跟踪基于matlab卡尔曼滤波多目标跟踪含Matlab源码 1832期