Matlib 关于视屏处理的方法

一、将视频直接转换为3个张量的mat文件

video23DMat.m

%读取视频文件,转换为3维的矩阵 
%读取视频文件,不再需要用aviread,因为aviread很多压缩格式不支持,推荐使用VideoReader类
xyloObj = VideoReader('C:\Users\bymin\Desktop\2017D\OMoGMF_code\highway_5s.avi');

%获取视频信息(帧数,高度,宽度)
nFrames = xyloObj.NumberOfFrames;
vidHeight = xyloObj.Height;
vidWidth = xyloObj.Width;

% 先随机生成一个2维矩阵,double类型的
 X=rand(vidHeight, vidWidth);
%或者使用zeros函数,比较节省内存: data=zeros(vidHeight, vidWidth,'uint8');

% 读取第k帧,转化为灰度图像,扩展为三维数组
for k = 1 : nFrames
    imgdata=read(xyloObj,k);
    graydata=rgb2gray(imgdata);
    X(:,:,k)=graydata;
end

%这样将一个图像大小为row*col,帧数为m的视频文件就生成了 row*col*m的三维数组。
%在工作空间中,另存为mat数据文件即可。
%也可以直接调用save函数:save(nfilename,'data');

二、重命名该文件夹下的所有文件

注意:代码要和文件图片放在同一路径下

imgRename.m

%重命名文件下的的所有文件
    folder = 'C:\Users\bymin\Desktop\2017D\2-video\NoWaggleStaBG\highway\input150\';
    files = dir([folder '*.jpg']);
    for i = 1 : numel(files)
        oldname = files(i).name;
        I = imread(oldname);
        %[pathstr, name, ext] = fileparts(oldname) ;
%         if i<10
%             newname = strcat('000',num2str(i),'.jpg');
%             imwrite(I,newname,'jpg');
%         elseif i>=10
%             newname = strcat('00',num2str(i),'.jpg');
%             imwrite(I,newname,'jpg');
%         
%         end
        newname = strcat(num2str(i),'.jpg');
        imwrite(I,newname,'jpg');
    end

三、将所有单帧图片合成为视频

img2video.m

%将所有单帧图片转换为视频
DIR='C:\Users\bymin\Desktop\2017D\2-video\NoWaggleStaBG\highway\input150\';        %图片所在文件夹
file=dir(strcat(DIR,'*.jpg'));                %读取所有jpg文件
filenum=size(file,1);                         %图片总数

obj_gray = VideoWriter('highway_5s.avi');   %所转换成的视频名称
writerFrames = filenum;                       %视频帧数

%将单张图片存在avi文件
open(obj_gray);
for k = 1: writerFrames
    fname = strcat(DIR, num2str(k), '.jpg');
    frame = imread(fname);
    writeVideo(obj_gray, frame);
end
close(obj_gray);

四、将所有单帧图片转换为矩阵

img2mat.m

%将所有单帧图片转换为向量存储为mat文件
clear
clc

%DIR='E:\MatlabCode\View2mat\campus5\';     %单帧图片所在文件夹
DIR = 'C:\Users\bymin\Desktop\2017D\2-video\NoWaggleStaBG\highway\input150\'
file=dir(strcat(DIR,'*.jpg'));             %读取图片所在文件所有jpg文件
filenum=size(file,1);                      %图片个数

fname = strcat(DIR, num2str(1), '.jpg');   %第一张图片的文件名
frame = imread(fname);                     %读取第一张图片
rows = size(frame(:),1);                   %单张图片的总像素个数
XX = zeros(rows, filenum);                 %将所有图片拉成矩阵时的维数
%将所有图片存为一矩阵
for k = 1: filenum
    fname = strcat(DIR, num2str(k), '.jpg');
    frame = imread(fname);
    x = frame(:);
    XX(:, k) = x;
    %writeVideo(obj_gray, frame);
end
%将视频矩阵及其行列数存在obj对象
obj.XX = uint8(XX);
obj.siz = size(frame);
%save campus5 obj                           %将obj对象存为mat文件
save 5sMat obj



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
125分50秒---162.81M---LabView01---第10章数据的显示.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView01-第10章数据的显示.wmv 92分2秒---143.46M---LabView02---第11章文件的IO及保存.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView02-第11章文件的IO及保存.wmv 37分22秒---58.09M---LabView03---第12章LabVIEW的通信.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView03-第12章LabVIEW的通信.wmv 9分58秒---21.2M---LabView04---第13章LabVIEW与其它软件的连接.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView04-第13章LabVIEW与其它软件的连接.wmv 4分45秒---9.99M---LabView05---第14章LabVIEW中子VI的设置及调用.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView05-第14章LabVIEW中子VI的设置及调用.wmv 34分30秒---61.03M---LabView06---第15章其它高级技巧.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView06-第15章其它高级技巧.wmv 9分41秒---11.37M---LabView07---第2章第一个LabVIEW例子.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView07-第2章第一个LabVIEW例子.wmv 86分58秒---140.25M---LabView08---第3章基本元素.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView08-第3章基本元素.wmv 76分48秒---143.72M---LabView09---第4章程序结构.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView09-第4章程序结构.wmv 5分46秒---14.67M---LabView10---第5章数据采集.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView10-第5章数据采集.wmv 12分50秒---18.35M---LabView11---第6章数据传输及电脑接口.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView11-第6章数据传输及电脑接口.wmv 59分57秒---87.83M---LabView12---第7章数据的分析及处理.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView12-第7章数据的分析及处理.wmv 42分4秒---61.02M---LabView13---第8章LabVIEW的信号调理.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView13-第8章LabVIEW的信号调理.wmv 132分19秒---178.86M---LabView14---第9章分析处理中数学计算.wmv---F:/Resource/video/硬件/AltiumDesigner/LabView14-第9章分析处理中数学计算.wmv

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值