matlab - 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 类是否有更好的或替代方法来存储快照数组?一个具体的代码示例总是受欢迎的?
解决方案
普通多维数组通常比元胞数组快:
tic
nframes=25;
frame=zeros(576,1024,3,nframes,'uint8');
for i=1:nframes
frame(:,:,:,i) = getsnapshot(obj);
end
toc
之后,访问单个帧与分配相同:frame(:,:,:,frame_num)
为您提供 572x1024x3 数组。只有基准测试才能判断这种方法是否真的更快。
推荐阅读
- html - 将 div 设置为 height: 100% 禁用滚动条
- python - Python - 在 SenseHat 上停止滚动消息
- typescript - 使属性可选但不将值设置为未定义的联合的 Typescript 实用程序类型
- gdb - How to make gdb allow me to call "floor" even when debug info files are installed?
- drop-down-menu - 下拉禁用选项但显示可用选项
- path - is there an easy way to get the path for the subfolder?
- php - 如何使用选择变量推送动作表单?
- scala - What would cause a try/catch block to fail exception handling despite execution landing in catch block?
- c# - KnockoutJS and c# view
- html - 如何将多个 GeoJSON 图层添加到传单地图?