一、获取代码方式

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

获取代码方式2:
完整代码已上传我的资源:【运动检测】基于matlab最大互信息运动目标检测【含Matlab源码 1607期】

备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、数字图像处理简介

图像处理基础教程链接
1 【基础教程】基于matlab图像处理(表示方法+数据结构+基本格式+类型转换+读取+点运算+代数运算)【含Matlab源码 834期】
2 【基础教程】基于matlab图像处理(读写+显示+运算+转换+变换+增强+滤波+分析+统计)【含Matlab源码 144期】
3 【基础教程】基于matlab图像增强+复原+分割【含Matlab源码 056期】

三、部分源代码

function  MovingTargetDetectionByMMI()
%Moving Target Detection
%Based on Maximun Mutual Information
%%读文件 Im1=imread('001.jpg'); Im2=imread('002.jpg'); Im3=imread('003.jpg'); Im1=rgb2gray(Im1);
Im2=rgb2gray(Im2);
Im3=rgb2gray(Im3); tic;  d12=GetDifferenceImg(Im2,Im1);
d23=GetDifferenceImg(Im2,Im3);d=d12.*d23;
se =[0     0     0     1     0     0     00     0     1     2     1     0     00     1     2     4     2     1     01     2     4     8     4     2     10     1     2     4     2     1     00     0     1     2     1     0     00     0     0     1     0     0     0];
for i=1:4
d = imfilter(d,se);
end
for i=1:2
d = medfilt2(d,[4 4]);
end
%%d=abs((d12-d23).^0.7);
d=uint8(d/max(max(d))*255);
level = graythresh(d);
BW = im2bw(d,level);
s=regionprops(BW,'BoundingBox');figure(1)subplot(2,2,1); imshow(uint8(d12/max(max(d12))*255)); title('参考帧与前一帧的差值')subplot(2,2,2); imshow(uint8(d23/max(max(d23))*255)); title('参考帧与后一帧的差值')subplot(2,2,3); imshow(BW); title('由前后帧得出的差值')subplot(2,2,4); imshow(Im2); %imshow(d); rectangle('Position',s(1).BoundingBox,'Curvature',[0,0],'LineWidth',2,'LineStyle','--','EdgeColor','r') title('参考帧与检测结果')%求相邻两帧重合部分差值主函数
function outImg=GetDifferenceImg(R,F)
[CA1,~,~,CD1]=dwt2(R,'db1');
[CA2,~,~,CD2]=dwt2(F,'db1');
CA1=uint8(CA1);
CA2=uint8(CA2); fprintf('\n------PSO start\n');
[pa,mi]=PSO(CA1,CA2);
while mi<1.2[pa,mi]=PSO(CA1,CA2);
end
fprintf('tx:%f  ty:%f  ang:%f mi:%f\n',pa(1),pa(2),pa(3),mi);
fprintf('------PSO end\n\n');
%pa=[0,0,0];
fprintf('------Powell start\n');
mi_old=0;
while abs(mi-mi_old)>0.01mi_old=mi;[pa,mi]=powell(R,F,pa);
end
fprintf('------Powell end\n\n'); time=toc;
fprintf('tx:%.4f  ty:%.4f  ang:%.2f mi:%f\n',pa(1),pa(2),pa(3),mi);
fprintf('time:%f\n',time); outImg=GetDifference(pa(1),pa(2),pa(3),R,F);
%figure(6);imshow(outImg); %求相邻两帧重合部分差值
function outImg=GetDifference(tx,ty,ang,R,F) [m,n]=size(R);
%
R=im2double(R);
F=im2double(F);theta=ang*pi/180;   %旋转角度转弧度
cx=floor(n/2);      %旋转的中心点
cy=floor(m/2);
outImg=zeros(m,n);for j=1:m for i=1:n %参考图像在浮动图像平移后的对应点 %     x=i-tx;  %列 %     y=j-ty;  % x=(i-cx)*cos(theta)-(j-cy)*sin(theta)+cx-tx; y=(i-cx)*sin(theta)+(j-cy)*cos(theta)+cy-ty; x1=floor(x); y1=floor(y); rval=R(j,i); %图像重合部分求差if(x1>=1&&x1<n&&y1>=1&&y1<m) dy=y1-y;dx=x1-x;%双线性插值fval=(F(y1+1,x1)-F(y1,x1))*dy+(F(y1,x1+1)-F(y1,x1))*dx+(F(y1+1,x1+1)+F(y1,x1)-F(y1,x1+1)-F(y1+1,x1))*dy*dx+F(y1,x1);outImg(j,i)=abs((rval-fval).^0.7*exp(-min([rval fval])/20));%outImg(j,i)=abs((rval-fval).^2.5/(min([rval fval])).^0.2);endend
end
%outImg=uint8(outImg/max(max(outImg))*255);%双线性插值求互信息
function out=BI_mi(tx,ty,ang,R,F)
[m,n]=size(R);
hist=zeros(256,256);
ha = zeros(1,256);
hb = zeros(1,256);
%归一化到256级灰度
% if max(max(r))~=min(min(r)) %max(max(a))结果是A中最大的元素,max(A)结果一个行向量,元素分别是A的每个列向量的最大的元素
%     r = (r-min(min(r)))/(max(max(r))-min(min(r)));
% else
%     r = zeros(M,N);
% end
%
% if max(max(f))-min(min(f))
%     f = (f-min(min(f)))/(max(max(f))-min(min(f)));
% else
%     f = zeros(M,N);
% end
%
% r = double(int16(r*255))+1;
% f = double(int16(f*255))+1; R=R+1;
F=F+1;
theta=ang*pi/180;   %旋转角度转弧度
cx=floor(n/2);      %旋转的中心点
cy=floor(m/2); %求联合概率密度
for j=1:m for i=1:n %参考图像在浮动图像平移后的对应点 %     x=i-tx;  %列 %     y=j-ty;  % x=(i-cx)*cos(theta)-(j-cy)*sin(theta)+cx-tx; y=(i-cx)*sin(theta)+(j-cy)*cos(theta)+cy-ty; x1=floor(x); y1=floor(y); rval=R(j,i); %图像重合部分求差if(x1>=1&&x1<n&&y1>=1&&y1<m) dy=y1-y;dx=x1-x;%双线性插值fval=(F(y1+1,x1)-F(y1,x1))*dy+(F(y1,x1+1)-F(y1,x1))*dx+(F(y1+1,x1+1)+F(y1,x1)-F(y1,x1+1)-F(y1+1,x1))*dy*dx+F(y1,x1);hist(fval,rval)=hist(fval,rval)+1;endend
end

四、运行结果

五、matlab版本及参考文献

1 matlab版本
2014a

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

【运动检测】基于matlab最大互信息运动目标检测【含Matlab源码 1607期】相关推荐

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

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

  2. 【Matlab水果识别】苹果质量检测及分级系统(带面板)【含GUI源码 1613期】

    一.代码运行视频(哔哩哔哩) [Matlab水果识别]苹果质量检测及分级系统(带面板)[含GUI源码 1613期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 关于v$process与v$session中process的理解
  2. P1024 一元三次方程求解(递归式二分)
  3. ANDROID 开发常用的框架、工具、API最全集合
  4. Redis中的Lua脚本超时
  5. 阿里晓斌:如何做好技术 Team Leader?
  6. 有个内含单词的超大文本文件_如果你家有个大阳台,你会选择封阳台吗?
  7. go去掉最后一个字符_可维护的Go代码程序指南(一)之变量篇
  8. 处理和引发事件的规范
  9. 【ACwing 95】费解的开关——枚举 + 搜索
  10. Fedora 14 下成功驱动BCM4312的步骤
  11. 新人Unity下载安装
  12. 汇编指令大全(带注释)
  13. 同一个局域网内如何共享文件夹(含共享打印机操作方法)
  14. HIVE如何进行随机抽样
  15. beaver彼_如何使用Beaver Builder创建自定义WordPress布局
  16. 主题颜色提取 ——— Palette
  17. Linux使用C语言实现ls命令
  18. Vue2.0的页面模板
  19. 41.Apache用户认证及访问日志 域名跳转
  20. C# QRCode自定义二维码大小

热门文章

  1. 架构 - 洋葱图架构
  2. 数据结构之双向链表----Python
  3. 三种方式创建bean对象在springIOC容器中初始化、销毁阶段要调用的自定义方法
  4. vue —— 利用 viewport 进行适配
  5. こだわり者いろはちゃん / Iroha's Obsession (暴力枚举)
  6. BottomBar之Android底部菜单
  7. Python开发之用户密码存储
  8. MVC4 Model ValueProvider
  9. HihoCoder - Floyd算法
  10. APACHE 在windows下的配置