MATLAB:图像快照阵列

时间:2018-10-10 22:01:32

标签: matlab

已调用一个单元阵列来存储Logitech USB摄像机的快照:

obj=videoinput('winvideo',1)
disp(obj.name)
MJPG_1024x576-winvideo-1

执行需要33秒。

tic
nframes=25;
frame=cell(nframes);
for i=1:nframes
    frame{i} = getsnapshot(obj);
end
toc

getsnapshot()返回的帧(图像)是576X1024X3 uint8(RGB?)。

是否有更好或替代的单元格数组MATLAB class来存储快照数组?始终欣赏一个具体的代码示例?

1 个答案:

答案 0 :(得分:1)

正常的多维数组通常比单元数组更快:

tic
nframes=25;
frame=zeros(576,1024,3,nframes,'uint8');
for i=1:nframes
    frame(:,:,:,i) = getsnapshot(obj);
end
toc

然后,访问单个框架与分配相同:frame(:,:,:,frame_num)为您提供572x1024x3阵列。只有基准测试才能说明这种方法是否确实更快。