资源简介
检测视频中运动的两个点,并绘制出轨迹,输出坐标,计算速度和角速度。此资源中的代码可能只能处理特定的视频,不过算法适用很广泛。(此资源以附带上所属视频,使用者可根据视频差异更改代码,将视频与代码放在一个文件夹下,用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-GUI图形界面的数字图像处理
- 数字图像处理期末大作业.doc
- 数字图像处理|Matlab-数字图像编码实
- AGCWD算法 电子科技大学图像处理与应
- 遥感数字图像处理-matlab-主成份及穗帽
- 目标检测的DPM模型在windows下的实现
- 基于MATLAB数字图像处理的实现和仿真
- 数字图像处理实验报告北科大 matlab
- 遥感数字图像处理内含Matlab)代码
- RGB 、YUV、YIQ 和 YCrCb颜色空间转换的
- 数字图像处理常用测试图片part6
- K均值聚类算法,图像处理,GUI,mat
- matlab图像处理包括数据反演以及其他
- 中山大学 朝红阳 图像处理作业 matl
- 图像中红色标记去除Matlab代码实现
- 生物信号和生物医学的图像处理以M
- 基于adaboost算法的目标检测MATLAB代码
- 现代数字图像处理技术提高及应用案
- 精通MATLAB数字图像处理2015的源代码
- 数字与图像处理matlab课程设计
- MATLAB GUI图像处理.zip
- 车牌识别_matlab_模式识别(MATLAB代码,
- MATLAB数字图像处理外文文献
- 编写MATLAB函数 图像处理实验报告
- 利用MATLAB实现医学图像处理与分析
- 数字图像处理-matlab实验三次
- 《MATLAB图像处理详解》 程序
- 基于MATLAB GUI的数字图像处理
- matlab图像处理详解杨丹源代码
评论
共有 条评论