一、获取代码方式

获取代码方式1:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

获取代码方式2:
完整代码已上传我的资源:【目标跟踪】基于matlab Kalman滤波目标跟踪【含Matlab源码 388期】
备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、Kalman滤波目标跟踪简介

运动物体跟踪实际上就是对运动物体位置的测量和估计,和称小兔兔体重一样,我们也有两个渠道可以知道运动物体的位置,一个是我们观察到的,目标A在的某一帧图像的某个坐标点,另一个是我们根据前面几帧里目标的运动情况估计出来的,这个估计是假定目标运动是光滑的(当然也可以有其他模型),在这个根据以前运动做出的估计和我们测出来的目标点位置之间做个加权平均,就是现在的估计值,对下一帧做同样处理,加权平均的权值就是Kalman增益,根据Kalman提供的算法可由以往的误差大小和分布推出,这就是全部的用Kalman滤波做目标跟踪的概念。
Kalman滤波理论主要应用在现实世界中个,并不是理想环境。主要是来跟踪的某一个变量的值,跟踪的依据是首先根据系统的运动方程来对该值做预测,比如说我们知道一个物体的运动速度,那么下面时刻它的位置按照道理是可以预测出来的,不过该预测肯定有误差,只能作为跟踪的依据。另一个依据是可以用测量手段来测量那个变量的值,当然该测量也是有误差的,也只能作为依据,不过这2个依据的权重比例不同。最后kalman滤波就是利用这两个依据进行一些列迭代进行目标跟踪的。
在这个理论框架中,有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);%提取球的质心坐标及半径[cc(i),cr(i),radius,flag] = extractball(Imwork,Imback,i);if flag==0continueend%用绿色标出球实际运动的位置
hold onfor c = -1*radius: radius/20 : 1*radiusr = sqrt(radius^2-c^2);plot(cc(i)+c,cr(i)+r,'g.')plot(cc(i)+c,cr(i)-r,'g.')
end% Kalman器更新if kfinit==0xp = [MC/2,MR/2,0,0]'elsexp=A*x(i-1,:)' + Buendkfinit=1;PP = A*P*A' + QK = PP*H'*inv(H*PP*H'+R)x(i,:) = (xp + K*([cc(i),cr(i)]' - H*xp))';x(i,:)[cc(i),cr(i)]P = (eye(4)-K*H)*PP
%用红色画出球实际的运动位置hold onfor c = -1*radius: radius/20 : 1*radiusr = sqrt(radius^2-c^2);plot(x(i,1)+c,x(i,2)+r,'r.')plot(x(i,1)+c,x(i,2)-r,'r.')endpause(0.3)
end
function [cc,cr,radius,flag]=extractball(Imwork,Imback,index)
% 功能:提取图像中最大斑点的质心坐标及半径
% 输入:Imwork-输入的当前帧的图像;Imback-输入的背景图像;index-帧序列图像序号
% 输出:cc-质心行坐标;cr-质心列坐标;radius-斑点区域半径;flag-标志cc = 0;cr = 0;radius = 0;flag = 0;[MR,MC,Dim] = size(Imback);% 将输入图像与背景图像相减,获得差异最大的区域fore = zeros(MR,MC);          fore = (abs(Imwork(:,:,1)-Imback(:,:,1)) > 10) ...| (abs(Imwork(:,:,2) - Imback(:,:,2)) > 10) ...| (abs(Imwork(:,:,3) - Imback(:,:,3)) > 10);  foremm = bwmorph(fore,'erode',2); % 运用数学形态学去除微小的噪声% 选择大的斑点对其周围进行标记labeled = bwlabel(foremm,4);stats = regionprops(labeled,['basic']);[N,W] = size(stats);if N < 1return   end% 如果大的斑点的数量大于1,则用冒泡法进行排序id = zeros(N);for i = 1 : Nid(i) = i;endfor i = 1 : N-1for j = i+1 : Nif stats(i).Area < stats(j).Areatmp = stats(i);stats(i) = stats(j);stats(j) = tmp;tmp = id(i);id(i) = id(j);id(j) = tmp;endendend

四、运行结果

五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.

【目标跟踪】基于matlab Kalman滤波目标跟踪【含Matlab源码 388期】相关推荐

  1. 【Matlab人脸识别】人脸实时检测与跟踪【含GUI源码 673期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]人脸实时检测与跟踪[含GUI源码 673期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟逸凡,柳益君 ...

  2. 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】

    一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...

  3. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】

    一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...

  4. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  5. 【Matlab人脸识别】BP神经网络人脸识别(含识别率)【含GUI源码 891期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]BP神经网络人脸识别(含识别率)[含GUI源码 891期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  6. 【Matlab人脸识别】形态学教室人数统计(带面板)【含GUI源码 1703期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]形态学教室人数统计(带面板)[含GUI源码 1703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟 ...

  7. 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】

    一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

  8. 【Matlab语音加密】语音信号加密解密(带面板)【含GUI源码 181期】

    一.代码运行视频(哔哩哔哩) [Matlab语音加密]语音信号加密解密(带面板)[含GUI源码 181期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆 ...

  9. 【Matlab身份证识别】身份证号码识别【含GUI源码 014期】

    一.代码运行视频(哔哩哔哩) [Matlab身份证识别]身份证号码识别[含GUI源码 014期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  10. 【Matlab人脸识别】KL变换人脸识别【含GUI源码 859期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]KL变换人脸识别[含GUI源码 859期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

最新文章

  1. Python+OpenCV 图像处理系列(8)—— Numpy 对象及图像对象创建与赋值
  2. SystemCenter2012SP1实践(15)共享库服务器和ISO
  3. 牛客网选择题之linux
  4. .NET网络编程学习(二)
  5. php将权限写入session,PHP由session文件夹权限不够引起的报错
  6. UESTC 31 饭卡 card
  7. python将图片原比例缩小_Python批量按比例缩小图片脚本分享
  8. 第三届人本沙龙12月活动小结
  9. DELL R430服务器做raid5以及安装操作系统过程
  10. Atitit 图像处理的摩西五经attilax总结
  11. Tushare使用分享
  12. HTML5期末大作业:腾讯游戏网站设计——腾讯游戏官网(13页) HTML+CSS+JavaScript web网页设计与开发
  13. Windows设置眼睛保护色
  14. 解决pgAdmin4启动失败方法(The pgAdmin 4 sever could not be contacted)
  15. 最少操作次数(英雄会)
  16. DC/DC转换器四大设计要点,这些技巧你掌握了吗?
  17. spire抽取ppt图片java_Java 在PPT中添加、提取SmartArt图形
  18. 抖音矩阵系统/短视频矩阵系统开发分享
  19. 湖南师范大学 C语言考试操作题汇总。
  20. Adobe 发布 Flash 转换成 Html5 工具 代号Wallaby(沙袋鼠)

热门文章

  1. P2668 斗地主 贪心+深搜
  2. Angular 分页
  3. STM32 外部中断
  4. codeforces 212E IT Restaurants(树形dp+背包思想)
  5. pytesseract识别数字
  6. Jupyter Notebook激活conda对应的环境2
  7. 20191116每日一句
  8. 20191004每日一句
  9. 190812每日一句
  10. Atitit Queue consum algo 队列消费算法fifo lifo ro目录1. 队列消费算法 11.1. FIFO 先入先出 11.2. LIFO 后入先出 不能多开 1