2012-07-03 4 views
3

Я работаю над проектом, в котором мы используем радиомодем для передачи данных (видео и телеметрии) с беспилотного летательного аппарата на наземную станцию. Нам нужно показать видео в режиме реального времени и узнать, какой кадр соответствует каждому фрагменту данных телеметрии в C#.Как отображать видео с opencv из байтов?

Данные декапсулируются в байты телеметрии и видео (mpeg4). Поскольку у меня есть некоторый опыт работы с OpenCV, я бы хотел использовать его для декодирования, отображения и захвата позиции кликов из видео. Для этого я использую оболочку OpenCV для C# под названием Emgu.

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

У кого-нибудь есть идеи, как это сделать?

+1

Чтение файла - это то же самое, что и чтение сокета, вы должны просто довести поток до читателя, и он в значительной степени сможет читать «на лету». Мне что-то не хватает? –

+0

Я получаю байты от обратного вызова, который вызывается каждый раз, когда поступают новые куски данных. Могу я просто поместить их в сокет и рассматривать его как обычный файл? – dittrich

+0

Поскольку вы читаете/пишите из потока, вы можете легко обрабатывать свой поток сокетов, как если бы его файл. Помните, что когда вы пишете/читаете файлы, вам нужно использовать потоки. Вернувшись, когда они создали сетевые протоколы, они были умными и упростили и поняли. Как я уже сказал, возьмите сетевой поток, и вы можете написать/прочитать все байты из него, как если бы это был файл. Прочтите некоторые сведения о сетевом программировании, потому что в отличие от файла нет «конца потока», пока вы не отключите его. Если вы хотите обрабатывать данные «на лету», один поток захватывает данные, а другой анализирует их так, чтобы все было в режиме реального времени. –

ответ

Смежные вопросы