получает ускорение - PullRequest
       10

получает ускорение

5 голосов
/ 18 января 2012

выполнение функции getsnapshot занимает много времени, поскольку (я полагаю) инициализирует веб-камеру при каждом вызове. Это проблема, если вы хотите получать изображения с высокой частотой кадров.

Я случайно обнаружил один трюк - вызвать функцию preview, которая сохраняет обработчик веб-камеры открытым, делая getsnapshot практически мгновенным, но при этом небольшое окно предварительного просмотра остается открытым:

% dummy example
cam = videoinput(...);
preview(cam);

while(1)
    img = getsnapshot(cam);
    % do stuff
end

Есть ли "более чистый" способ ускорения getsnapshot? (без открытого окна предварительного просмотра)

1 Ответ

6 голосов
/ 18 января 2012

Вы можете использовать новую панель инструментов "машинное зрение", специально разработанную для применения в области зрения.См. Код ниже:

vid = videoinput('winvideo', 1, 'RGB24_320x240'); %select input device

hvpc = vision.VideoPlayer;   %create video player object

src = getselectedsource(vid);
vid.FramesPerTrigger =1;
vid.TriggerRepeat = Inf;
vid.ReturnedColorspace = 'rgb';
src.FrameRate = '30';
start(vid)

%start main loop for image acquisition
for t=1:500
  imgO=getdata(vid,1,'uint8');    %get image from camera
  hvpc.step(imgO);    %see current image in player
end

Как видите, вы можете получить изображение с помощью getdata.Узким местом в видеоприложениях в Matlab было окно предварительного просмотра, которое существенно задерживалось для кодирования.Новое видение. VideoPlayer работает на намного быстрее (я использовал этот код в приложениях для визуализации в реальном времени в Matlab. Когда я написал первую версию без инструментария Vision, достигая частоты кадров около 18 кадров в секунду и используяновая панель инструментов набрала около 70!).

Примечание. Если вам нужна скорость в графических приложениях, использующих Matlab, вам действительно следует рассмотреть возможность использования библиотек OpenCV через mex, чтобы получить приличную производительность при обработке изображений.

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