MATLAB: массивы снимков изображения - PullRequest
0 голосов
/ 11 октября 2018

Массив ячеек был вызван для хранения снимков с USB-камеры Logitech:

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

Кадр (изображение), возвращаемый getnapshot ()576X1024X3 UINT8 (RGB?).

Есть ли лучше или альтернатива массиву ячеек класс MATLAB для хранения массива снимков?Конкретный пример кода всегда приветствуется?

1 Ответ

0 голосов
/ 11 октября 2018

Обычные многомерные массивы обычно работают быстрее, чем массивы ячеек:

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

После этого доступ к отдельному кадру аналогичен назначению: frame(:,:,:,frame_num) дает массив 572x1024x3.Только тесты покажут, действительно ли этот метод быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...