Maltab GUI课程设计——视频中的运动目标跟踪

课程设计

平台:Matlab App designer

功能实现:运动目标跟踪

目的:

1.Matlab代码编写能力进阶;
2.学会利用Matlab GUI设计图形交互界面,开发有趣的应用;

演示:

1.运动目标跟踪演示,通过前后两帧的图像对减,像素差大于判断阈值的则认为是存在运动物体的。再利用形态学处理得到运动目标位置信息,并用红框在原视频中框出运动。
运动目标跟踪
2.换个多运动目标的视频试试:
运动目标跟踪
这里可以看到,某些时间段内乌龟被区分成了两个物体。这是因为前后两帧对减后乌龟的中间部分像素差低于判断阈值导致的,虽然不影响对运动目标的跟踪,但是若要判断运动目标数量,则可能会出现问题。一种解决方法是减低判断阈值。还有一种解决办法就是用每一帧去减背景帧,但是这种方法只适用于背景固定不动的场景,比如监控视频等。在我们的方法中采用的是前后两帧对减,缺点是可能造成目标的多判,优点是对背景稍微变动的视频也能表现出较好的运动目标跟踪效果。

代码示例:

实现目标跟踪的关键程序段:

%差分阀值,用来区分前后两帧图片到底有没有不同的阈值
threshold=16;
%从第一帧开始遍历到倒数第二帧,每一帧与后一帧做差分运算
for p=1:app.frameNum-1
    originalPic1=app.I(:,:,:,p);%读取第p帧,原始图像1
    originalPic2=app.I(:,:,:,p+1);%读取第p+1帧,原始图像2
    imshow(originalPic2,'parent',app.UIAxes);%
    % 平滑
    H = fspecial('gaussian',7,3);
    originalPic1 = imfilter(originalPic1,H,'same');
    originalPic2 = imfilter(originalPic2,H,'same');
    
    originalPic_gray1=rgb2gray(originalPic1);%rgb转灰度图1
    originalPic_gray2=rgb2gray(originalPic2);%rgb转灰度图2
    diff=app.xxx(originalPic_gray2,originalPic_gray1);%差分数值
    idiff=diff<threshold; %判断与差分阈值的大小,小于差分阈值则为1,大于差分阈值则为0
    %逻辑图像处理
    idiff_pro=medfilt2(idiff);%中值滤波去噪
    idiff_pro=filter2(fspecial('average',1),idiff_pro);%均值滤波去噪
    idiff_pro=~idiff_pro;%这边再取反一下,变成大于差分阈值则为1,小于差分阈值则为0
    % 移除小对象 小区域肯定是噪声 (根据图像大小而定,参考值10-30)
    idiff_pro= bwareaopen(idiff_pro,20);
    % 图像闭运算,先膨胀后腐蚀操作, 连接邻近区域以及去除中间空点
    se = strel('disk',11);
    idiff_pro = imclose(idiff_pro,se);
    imshow(idiff_pro,'parent',app.UIAxes_2);%
    %标记最大边界,只跟踪视频中变化最大的区域
    img_reg=regionprops(idiff_pro,'area','boundingbox');%获取有差分的所有区域的位置信息。
    for ii=1:length(img_reg)
        originalPic2= insertShape(originalPic2,'Rectangle',img_reg(ii).BoundingBox,'Color','red','LineWidth',2);
    end
    imshow(originalPic2,'parent',app.UIAxes_3)
    pause(0.01)
end

资源链接

Maltab GUI课程设计——视频中的运动目标跟踪

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
上一篇 2022年6月15日 上午11:22
下一篇 2022年6月15日 上午11:24

相关推荐

本站注重文章个人版权,不会主动收集付费或者带有商业版权的文章,如果出现侵权情况只可能是作者后期更改了版权声明,如果出现这种情况请主动联系我们,我们看到会在第一时间删除!本站专注于人工智能高质量优质文章收集,方便各位学者快速找到学习资源,本站收集的文章都会附上文章出处,如果不愿意分享到本平台,我们会第一时间删除!