毕业设计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='原图';

    lab2='背景';

    lab3='差分二值化后';

    lab4='腐蚀膨胀后';

    subplot(221);imshow(I);title(lab1);

    subplot(222);imshow(M);title(lab2);

    subplot(223);imshow(Z);title(lab3);

subplot(224);imshow(Q);title(lab4);

三帧差分法

    filename1='110.jpg';%读取前一帧

    I1 = imread(filename1);

    O = rgb2gray(I1);%读,灰度前一帧

     filename2='115.jpg';%读取中间帧图像

    I2 = imread(filename2);

    P = rgb2gray(I2);%读,灰度当前帧

    filename3='120.jpg';%读取后一帧图像

    I3 = imread(filename3);

    Q = rgb2gray(I3);%读,灰度后一帧

   A = imabsdiff(P,O);

   level1 = graythresh(A);

    A = im2bw(A,level1);%二值化前两帧差图

   subplot(131);imshow(A);

    B = imabsdiff(Q,P);

 &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值