加速视觉处理,用于MovieProcess处理的VideoFileReader功能MATLAB

时间:2018-12-05 04:46:06

标签: matlab image-processing optimization

我有60秒长的电影,我正在处理它们以拉出移动的物体。我可以通过执行背景减法,过滤图像并使用Blob分析器来做到这一点。

问题在于整个过程很慢,因为从视频中拉帧是最耗时的部分,其中44.96占用了处理视频一半以上的时间。我用profile viewer来查看时间。

如果您看一下我的功能,我只是在使用Vision模块加载视频,并使用step在视频中移动。有没有办法加快速度??

enter image description here

Log_filter = fspecial('log', filterdot, thresh); % fspecial creat predefined filter.Return a filter.

tic
ii = 1;

bkgd = gpuArray(gh.Bkgd);

while ~isDone(gh.Video.reader)
    frame = gh.readFrame();
    gframe = gpuArray(frame);
    img_temp = double(rgb2gray(gframe));

    subbk = img_temp - bkgd;

    img_LOG = imfilter(subbk, Log_filter, 'symmetric', 'conv');
    img_LOG = img_LOG>.5;
    [~, centroids, ~] = gh.Video.blobAnalyser.step(gather(img_LOG));
    gh.Tracks.centroids{ii} = centroids;
    ii = ii+1;
    toc
end
gh.Video.info.NumberOfFrames = ii-1;
gh.ResetVideo
display('Dots extracted')

这是我拉框的功能

enter image description here

function frame = readFrame(gh)
    frame = gh.Video.reader.step();
end

0 个答案:

没有答案