嗨咯各位同学,这是我入住知乎第一天一份纯享贴送给大家参考学习~希望对你们有用哦
好啦话不多说进入正题
MATLAB视频运动目标检测参考源码
将视频截取成帧
fileName = 'q.avi'; %此处输入视频名称,要带后缀,注意好像只有wmv和avi格式
obj = VideoReader(fileName);
numFrames = obj.NumberOfFrames;% 帧的总数
for k = 1 :numFrames% 读取数据
frame = read(obj,k);
imshow(frame);
imwrite(frame,strcat(num2str(k),'.jpg'),'jpg');% 保存帧
End
灰度二值化图像
for i=1:numberofframe%numberofframe为图像张数
imageName=strcat(num2str(i),'.jpg');
I = imread(imageName);
imggray = rgb2gray(I);%灰度化图像
imwrite(imggray,strcat(num2str(i),'huidu.jpg'),'jpg');% 保存帧
i2=im2bw(I);% i2是二值图像,不需要求阈值
imwrite(i2,strcat(num2str(i),'erzhi.jpg'),'jpg');% 保存帧
end
背景差分法
filename = '103.jpg';%读原图
I = imread(filename);
X = rgb2gray(I);%读,灰度原图
filename = 'YCBJ.jpg';%读取背景图
M = imread(filename);
Y = rgb2gray(M);%读,灰度背景图
Z = imabsdiff(X,Y);%两图相减
level = graythresh(Z);
Z = im2bw(Z,level);%二值化图
% 膨胀腐蚀算子,相当于闭操作
se = strel('disk',2);
Q=imerode(Z,se);%腐蚀
Q=imdilate(Q,se);%膨胀
lab1='原图';
lab4='腐蚀膨胀后';