【视频互动跟踪】通过matlab提取跟踪视频中的目标,并提示备注信息。通过FLash播放器可互动点击查看信息

1.软件版本

MATLAB2010b

2.本算法理论知识

算法流程如下所示:

读取avi视频  :get_AVI.m

获取灰度视频:vedio_op.m

运动员跟踪  :func_man_catch.m

计算坐标    :func_get_position.m

注意点:你写论文的时候,需要的理论也就是保持框图中的几个方面:灰度图的应用;差分;二值;连通图的处理等知识。

3.部分核心代码

clc;%清除指令窗口的现实
clear;%清除内存
close all;%关闭所有图像
warning off;%关闭警告
tic;%开始计算运行时间

%进行视频读取(这里视频读取为15帧/S,为了计算方便,只运行27帧)
%运行过程会导致仿真异常缓慢
%选择视频01,那么对于的select也选择1,使其能保持到不同的文件中

select                  = 3;%选视频编码
[Obj,frameNum_Original] = get_AVI('source\03.AVI');%读取视频



%01.AVI选取的值
if select == 1
start          = 36;%读取视频的起始位置
frameNum       = 27;%读取视频的长度
sel_area       = 200;%定义视频中运动员的最小面积用于区分是物体还是运动员
end
%02.AVI选取的值
if select == 2
start          = 1;%读取视频的起始位置
frameNum       = 27;%读取视频的长度
sel_area       = 600;%定义视频中运动员的最小面积用于区分是物体还是运动员
end
%03.AVI选取的值
if select == 3
start          = 1;%读取视频的起始位置
frameNum       = 30;%读取视频的长度
sel_area       = 100;%定义视频中运动员的最小面积用于区分是物体还是运动员
end


pixel          = vedio_op(Obj,start,frameNum);   %获取处理视频的灰度视频
pixel_rgb      = vedio_op_rgb(Obj,start,frameNum);%获取处理视频

[L2,L3,people,Xcenters,Ycenters,d,bw] = func_man_catch(pixel,frameNum,sel_area);%运动员的提取
[pixel2,pixel3] = func_position(L2,L3,pixel_rgb,frameNum); %获得定位后的视频
[X1,X2,Y1,Y2]=func_get_position(frameNum,pixel3);%到处运动员的坐标位置信息





implay(pixel_rgb);%播放被处理的视频
implay(pixel);    %灰度视频
implay(d);        %差分图
implay(bw);       %二值图
implay(L2);       %分割1
implay(L3);       %分割2
implay(pixel2);   %播放处理过程的分割图
implay(pixel3);   %处理最后的分割结果



if select == 1
    
    aviFileName = 'save_source\01\01.avi';  %保存视频的名称
    framesPerSec =15;                       %保存视频的没秒帧数
    aviobj = avifile(aviFileName,'fps',framesPerSec,'COMPRESSION','NONE');%定义保存视频
    for i=1:frameNum                            
    aviobj = addframe(aviobj, pixel_rgb(:,:,:,i));%开始写入保存文件
    end
    aviobj = close(aviobj);%保存完毕后关闭
    
    aviFileName = 'save_source\01\01_white.avi';  %保存视频的名称 
    framesPerSec =15;                             %保存视频的没秒帧数 
    aviobj = avifile(aviFileName,'fps',framesPerSec,'COMPRESSION','NONE');%定义保存视频
    for i=1:frameNum
    aviobj = addframe(aviobj, pixel2(:,:,:,i));%开始写入保存文件
    end
    aviobj = close(aviobj);%保存完毕后关闭
    
end


if select == 2
    
    aviFileName = 'save_source\02\02.avi';  %保存视频的名称 
    framesPerSec =15;                       %保存视频的没秒帧数
    aviobj = avifile(aviFileName,'fps',framesPerSec,'COMPRESSION','NONE');%定义保存视频
    for i=1:frameNum
    aviobj = addframe(aviobj, pixel_rgb(:,:,:,i));%开始写入保存文件
    end
    aviobj = close(aviobj);%保存完毕后关闭
    
    aviFileName = 'save_source\02\02_white.avi'; %保存视频的名称  
    framesPerSec =15;%保存视频的没秒帧数
    aviobj = avifile(aviFileName,'fps',framesPerSec,'COMPRESSION','NONE');%定义保存视频
    for i=1:frameNum
    aviobj = addframe(aviobj, pixel2(:,:,:,i));%开始写入保存文件
    end
    aviobj = close(aviobj);%保存完毕后关闭
    
end



if select == 3
    
    aviFileName = 'save_source\03\03.avi';%保存视频的名称  
    framesPerSec =15;%保存视频的没秒帧数
    aviobj = avifile(aviFileName,'fps',framesPerSec,'COMPRESSION','NONE');%定义保存视频
    for i=1:frameNum
    aviobj = addframe(aviobj, pixel_rgb(:,:,:,i));%开始写入保存文件
    end
    aviobj = close(aviobj);%保存完毕后关闭
    
    aviFileName = 'save_source\03\03_white.avi';  %保存视频的名称 
    framesPerSec =15;%保存视频的没秒帧数
    aviobj = avifile(aviFileName,'fps',framesPerSec,'COMPRESSION','NONE');%定义保存视频
    for i=1:frameNum
    aviobj = addframe(aviobj, pixel2(:,:,:,i));%开始写入保存文件
    end
    aviobj = close(aviobj);%保存完毕后关闭
    
end


if select == 1
save XY_Position\01\x.mat X1 X2%保存坐标
save XY_Position\01\y.mat Y1 Y2%保存坐标
end
if select == 2
save XY_Position\02\x.mat X1 X2%保存坐标
save XY_Position\02\y.mat Y1 Y2%保存坐标
end
if select == 3
save XY_Position\03\x.mat X1 X2%保存坐标
save XY_Position\03\y.mat Y1 Y2%保存坐标
end

toc%统计代码的运行时间


4.操作步骤与仿真结论

    运行MATLAB,可以得到三个视频:

这个视频是原始的视频。

这个是分割矩阵的视频。

这个是分割后的视频。

    运行FLASH:

五个功能按钮的功能为:

第一个:关闭分割窗口;

第二个:打开分割窗口;

第三个:播放flash;

第四个:暂停播放;

第五个:退出FLASH视频;

分别对三个视频进行测试:

5.参考文献

使用进行视频测试

A10-08

6.完整源码获得方式

方式1:微信或者QQ联系博主

方式2:订阅MATLAB/FPGA教程,免费获得教程案例以及任意2份完整源码

猜你喜欢

转载自blog.csdn.net/ccsss22/article/details/124207461
今日推荐