matlab框出运动目标,基于MATLAB的运动目标检测

本文介绍了在静态背景下的运动目标检测技术,包括背景差分法、帧间差分法和光流法。重点阐述了帧间差分法的工作原理,即利用图像序列中相邻帧之间的相关性来检测运动目标。并提供了一段MATLAB代码示例,展示如何实现目标检测并将结果保存为图像。
摘要由CSDN通过智能技术生成

视频中的运动目标检测的方法非常多。运动目标检测的算法依照目标与摄像机之间的关系可以分为静态背景下运动检测和动态背景下运动检测。先简单从视频中的背景类型来讨论。

静态背景下的目标检测,就是从序列图像中将实际的变化区域和背景区分开了。在背景静止的大前提下进行运动目标检测的方法有很多,这些方法比较侧重于背景扰动小噪声的消除,如:

1.背景差分法

2.帧间差分法

3.光流法

帧间差分法

帧间差分法是求出图像序列中相邻两帧或多帧图像像素间的差分,并通过设定一定的阈值将其转化为二值图像,在背景静止的情况下,此方法有较好的效果。它利用视频图像相邻帧之间相关性较强的检测原理,来确定运动目标。

0721c8eb961a237c760e79cb38dc5f7d.png

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200216205751377.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2MzM5NDk3,size_16,color_FFFFFF,t_70)

function GetTargetImgs

clc; clear all; close all;

warning off all;

load pts.mat

imgFolder = fullfile(pwd, ‘target_images’);

if ~exist(imgFolder, ‘dir’)

mkdir(imgFolder);

end

nFrames = 424;

fprintf(’\n视频帧图像目标检测开始!’);

for i = 1 : nFrames

fileurl = fullfile(pwd, sprintf(‘images/%03d.jpg’, i));

Img = imread(fileurl);

bw = zeros(size(Img(:, :, 1)));

pt = pts{i};

for j = 1 : size(pt, 1)

bw(pt(j, 1), pt(j, 2)) = 1;

end

bw = logical(bw);

bw = imfill(bw, ‘holes’);

Imgr = Img(:, :, 1);

Imgg = Img(:, :, 2);

Imgb = Img(:, :, 3);

Imgr(~bw) = 0;

Imgg(~bw) = 0;

Imgb(~bw) = 255;

Img = cat(3, Imgr, Imgg, Imgb);

imwrite(Img, fullfile(imgFolder, sprintf(’%03d.jpg’, i)));

fprintf(’\n%d----%d’, i, nFrames);

end

fprintf(’\n视频帧图像目标检测完毕!\n’);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值