实验4:运动目标检测

更新时间:2023-03-11 05:48:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验4:运动目标检测

课时:2学时

一、实验目的及要求:采用两帧差分方法实现运动目标提取,基本掌握运动目标提取的

基本原理和方法

二、实验内容:

? 了解MATLAB处理视频的基本命令aviread或mmreader ? 了解MATLAB形态学滤波中膨胀算子imdilate的使用方法 ? 了解形态学滤波中结构元strel命令的调用格式,通过改变结构元形状和大小,比较

运动目标检测效果

clc clear

str=strel('square',3);

mov=mmreader('viptraffic.avi'); for i=20:mov.numberofframes-1 pic1=rgb2gray(read(mov,i)); pic2=rgb2gray(read(mov,i+1));

d=mat2gray(abs(double(pic1)-double(pic2))); t=graythresh(d); bw=im2bw(d,t); bw=imdilate(bw,str);

imshow(bw,'notruesize');pause(0.05); end

imdilate

功能:对图像实现膨胀操作。

用法:IM2 = imdilate(IM,SE) IM2 = imdilate(IM,NHOOD) IM2 = imdilate(IM,SE,PACKOPT) IM2 = imdilate(...,PADOPT)

IM2 = imdilate(IM,SE) 膨胀灰度,二值,压缩二值图像IM,返回IM2。参数SE为由strel函数返回的结构元素或者结构元素对象组。

IM2 = imdilate(IM,NHOOD)膨胀图像IM,这里NHOOD是定义结构元素邻域0和1的矩阵。 IM2 = imdilate(IM,SE,PACKOPT)定义IM是否是一个压缩的二值图像。 IM2 = imdilate(...,PADOPT)指出输出图像的大小。

例子:

I = imread('cameraman.tif'); se = strel('ball',5,5); I2 = imdilate(I,se);

1

imshow(I), title('Original')

figure, imshow(I2), title('Dilated') strel

功能:用于膨胀腐蚀及开闭运算等操作的结构元素对象 用法:SE = strel(shape,parameters)

创建由指定形状shape对应的结构元素。其中shape的种类有 arbitrary' 'pair'

'diamond' 'periodicline' 'disk'

'rectangle' 'line' 'square' 'octagon

参数parameters一般控制SE的大小。 例子:

se1 = strel('square',6) % 创建6*6的正方形 se2 = strel('line',10,45)

% 创建直线长度10,角度45 se3 = strel('disk',15) % 创建圆盘半径15 se4 = strel('ball',15,5)

% 创建椭圆体,半径15,高度5

三、实验结果: str=strel('square',3)

str=strel('disk',15)

2

通过对扫描点的描述,我们采用两帧差分方法实现运动目标提取。Strel方法于膨胀腐蚀及开闭运算等操作的结构元素对象,通过实验,我们取得了一个为3的正方形,和半径为15的圆,发现对于物体本来的形状,我们最好也根据本来形状来设定,这样能更好的得到分割图像。

3

本文来源:https://www.bwwdw.com/article/byww.html

Top