已调用一个单元阵列来存储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来存储快照数组?始终欣赏一个具体的代码示例?
答案 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阵列。只有基准测试才能说明这种方法是否确实更快。