在Matlab中通过视频序列测量心率

时间:2019-05-26 21:25:55

标签: matlab matlab-figure

我需要做的是什么,我需要帮助的是,因为我想不起来怎么做:它是生成一个估计算法以获得近似信号导数的近似值,以求平方导数并阈值化并确定峰之间的距离。 请帮助

我要做的是将视频导入到Matlab中,并获得图形的帧数,每帧尺寸和每秒帧数

代码:

file='20190526_124514.mp4';
    vidObj = VideoReader(file);
    display('%%%%%%%%%%%%%%%%%%%%');
    disp(file);
    display('Video');
    vidFrame=vidObj.FrameRate;
    vidW=vidObj.Width;
    vidH=vidObj.Height;
    k=1;
    data=[];
    t=[];
    while hasFrame(vidObj)
        frame = readFrame(vidObj);
        t(k)=vidObj.CurrentTime;
        d1=double(squeeze(frame(:,:,1)));
        d2=double(squeeze(frame(:,:,2)));
        d3=double(squeeze(frame(:,:,3)));
        data(:,:,k)=d1.^2+d2.^2+d3.^2;
        k=k+1;
    end
    NumFrame=k-1;
    display('Completed !!');
    display(['number of frames=' num2str(NumFrame)]);
    display(['dimensions per frame ' num2str(vidW) 'x' num2str(vidH)]);
    display(['frames per second =' num2str(vidFrame)]);
    Y=reshape(data,vidW*vidH,NumFrame);
    ym=mean(Y,1);
    PPG=ym-mean(ym);
    plot(t,PPG,'LineWidth',2); grid on; xlabel('Tiempo (seg)'); ylabel('PPG');

enter image description here

将测量结果与血氧仪进行比较,希望视频的测量结果与血氧仪相似。

0 个答案:

没有答案