1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZJaZkp9v
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
根据图像前景和背景的运动,检测视频的变化,空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。可以用来检测运动抖动物体
4.部分源码
........................................................................
if size(size(im1),2)==3
im1=rgb2gray(im1);
end
if size(size(im2),2)==3
im2=rgb2gray(im2);
end
im1=double(im1);
im2=double(im2);
im1 = imgaussfilt(im1,2);
im2 = imgaussfilt(im2,2);
u = zeros(size(im1)); % create u and v matrices
v = zeros(size(im2));
IxMask = [-1 1; -1 1]; % Create the X derivative filter
IyMask = [-1 -1; 1 1]; % Create the Y derivative filter
ItMask_1 = [-1 -1; -1 -1]; %Create both the filters for the time derivative
ItMask_2 = [1 1; 1 1];
im1x = conv2(im1, IxMask,'same');
im2x = conv2(im2, IxMask,'same');
im1y = conv2(im1, IyMask,'same');
im2y = conv2(im2, IyMask,'same');
im1t = conv2(im1, ItMask_1,'same');
im2t = conv2(im2, ItMask_2,'same');
Ix = (im1x + im2x) ./ 2;
Iy = (im1y + im2y) ./ 2;
It = (im1t + im2t) ./ 2;
newnumb1 = size(im1,1) - mod(size(im1,1),windowSize);
newnumb2 = size(im1,2) - mod(size(im1,2),windowSize);
for i = 1 : newnumb1 - windowSize
for j = 1 : newnumb2 - windowSize
Ixwindow=Ix(i : i + windowSize , j : j + windowSize);
Iywindow=Iy(i : i + windowSize , j : j + windowSize);
Itwindow=It(i : i + windowSize , j : j + windowSize);
Ixwindow = reshape(Ixwindow , [1 , size(Ixwindow,1)^2 ])';
Iywindow = reshape(Iywindow , [1 , size(Iywindow,1)^2 ])';
Itwindow = reshape(Itwindow , [1 , size(Itwindow,1)^2 ])';
A=[Ixwindow Iywindow];
B=Itwindow;
[outpute]=inv(A'*A)*A'*B;
u(i , j) = outpute(1);
v(i , j) = outpute(2);
end
end
u(isnan(u))=0;
v(isnan(v))=0;
A478