资源简介
检测视频中运动的两个点,并绘制出轨迹,输出坐标,计算速度和角速度。此资源中的代码可能只能处理特定的视频,不过算法适用很广泛。(此资源以附带上所属视频,使用者可根据视频差异更改代码,将视频与代码放在一个文件夹下,用matlab即可运行。)

代码片段和文件信息
clear all;
workingDir = tempname;
mkdir(workingDir);
mkdir(workingDir‘images‘); %建立空间
mov=VideoReader(‘Video_L15a.avi‘); %读入
fx1 = 0;
fy1 = 0;
sx1 = 0;
sy1 = 0;
quan = 0;
hejiao = 0;
jiao1 = 0;
vc = 0;
w = 0;
for ii = 1: 20 :mov.NumberOfframes
imgRgb = read(movii);
subplot(321);
imshow(imgRgb);
drawnow;
bw=im2bw(imgRgb0.5); %二值化处理
L = bwlabel(bw4); %对黑点部分标记
a = 0;
b = 0;
n = 0;
for i = 1 : 480;
for j = 1 : 640;
if(L(ij) == 1)
a = i + a;
b = j + b;
n = n + 1;
end
end
end
fx = round(a/n);
fy = round(b/n);
fprintf(‘第一个点(%d%d)\t‘ fxfy );
c = 0;
d = 0;
n = 0;
for i = 1 : 480;
for j = 1 : 640;
if(L(ij) == 2)
c = i + c;
d = j + d;
n = n + 1;
end
end
end
sx = round(c/n);
sy = round(d/n);
fprintf(‘第二个点(%d%d)\t‘ sxsy );
subplot(323)
grid on;
title(‘两点轨迹‘);
set(gcf ‘doublebuffer‘ ‘on‘);
axis([0 480 0 640]);
plot(fxfy‘.‘);
plot(sxsy‘*‘);
drawnow;
hold on;
jiao = angle( fxfysxsy ) ;
%while(ii>1) %区分两个点
%if(((sy-fy1)^2+(sx-fx1)^2)<((fx-fx1)^2+(fy-fy1)^2))
% as = sx;
% sx = fx;
% fx = as;
% as = sy1;
% sy = fy1;
% fy = as;
%end
%break;
%end
if(fx<700&&fy<700&&sx<700&&sy<700) %改进屏幕只有一个点的情景
cx = (fx+sx)/2;
cy = (fy+sy)/2;
else
cx = fx;
cy = fy;
end
fprintf(‘中心点坐标:(%f%f)\n‘ cxcy );
subplot(324)
grid on;
title(‘中心点‘)
set(gcf ‘doublebuffer‘ ‘on‘)
axis([0 480 0 640]);
plot(cxcy‘.‘);
drawnow;
hold on;
hejiao = hejiao + (jiao-jiao1);
if(hejiao>360)
quan = 1;
elseif(hejiao>720)
quan = 2;
end
fprintf(‘角度为:%f\n‘hejiao);
if(ii>1)
vc = sqrt((cx - cx1)^2+(cy - cy1)^2); %每20帧走多少像素
w = hejiao - hejiao1; %每20帧转过的角度
fprintf(‘速度为:%f\n‘ vc);
fprintf(‘角速度为:%f\n‘ w);
end
subplot(325)
grid on;
title(‘速度‘)
set(gcf ‘doublebuffer‘ ‘on‘)
plot(iivc‘.‘);
drawnow;
hold on;
if(w<40&&w>-40&&w~=0)
subplot(326)
grid on;
title(‘角速度‘)
set(gcf ‘doublebuffer‘ ‘on‘)
plot(iiw‘.‘);
drawnow;
hold on;
end
fx1 = fx; %记录上一个点
fy1 = fy;
sx1 = sx;
sy1 = sy;
jiao1 = jiao;
cx1 = round((fx1+sx1)/2);
cy1 = round((fy1+sy1)/2);
hejiao1 = hejiao;
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3587008 2013-10-27 10:46 检索视频中运动的点并计算线速度角速度——图像处理matlab实现\Video_L15a.avi
文件 3007 2013-12-26 09:26 检索视频中运动的点并计算线速度角速度——图像处理matlab实现\gaijin.m
目录 0 2014-01-05 09:26 检索视频中运动的点并计算线速度角速度——图像处理matlab实现\
相关资源
- 基于matlab的图像处理源程序
- 冈萨雷斯数字图像处理matlab版(第三
- 基于matlab 的图像处理100实例
- 8领域边界跟踪 图像处理 matlab
- matlab-图像处理算法
- p文件,MATLAB的
- 数字图像处理radon matlab变换算法代码
- 图像降噪Matlab代码
- 传统关联成像、计算鬼成像matlab
- MATLAB7.x图像处理
- ROC曲线 matlab实现
- 基于matlab的车牌识别系统论文
- matlab2019运动目标检测--数字图像处理
- 计算图像Spatial Frequence的Matlab程序SF
- 尾灯识别matlab代码
- MATLAB大脑腔体图像分割
- 基于MATLAB人民币识别系统.zip
- 数字图像处理作业canny边缘检测坎尼边
- 数字图像处理 MATLAB 大作业 代码及其
- 遥感影像融合_数字图像处理的matlab程
- MATLAB图像与视频处理实用案例详解代
- MATLAB 图像处理识别程序
- 数字图像处理使用matlab进行采样量化
- 傅里叶变化频谱图及频域滤波
- MATLAB实现k-svd和mod信号处理
- 图像处理---matlab
- Matlab在图像处理与目标识别方面的应
- matlab数字图像处理之几何变换将图像
- matlab数字图像处理之图像几何变换
- 图像超分辨重建MATLAB源代码迭代步长
评论
共有 条评论