roboforum.ru

Технический форум по робототехнике.
Текущее время: 06 май 2025, 21:13

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: OpenCV 2.2 захват видео в потоке (Вопрос)
СообщениеДобавлено: 03 фев 2011, 18:55 
Не в сети

Зарегистрирован: 09 окт 2010, 15:49
Сообщения: 8
Здравствуйте уважаемые.
Вопрос короткий и по существу:
Имеется скажем 2, 3 или 4 камеры, необходимо работать с каждой в своем потоке.
Кто решал подобный вопрос, как реализовать многопоточность ?
Спасибо.


Последний раз редактировалось EdGull 03 фев 2011, 19:01, всего редактировалось 1 раз.
Не чего так орать


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OpenCV 2.2 захват видео в потоке (Вопрос)
СообщениеДобавлено: 04 фев 2011, 01:24 
Не в сети
Аватара пользователя

Зарегистрирован: 21 май 2007, 22:57
Сообщения: 600
Откуда: Калининград
прог. языки: C++
а с какими проблемами вы столкнулись?

_________________
RoboCraft.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OpenCV 2.2 захват видео в потоке (Вопрос)
СообщениеДобавлено: 04 фев 2011, 17:37 
Не в сети

Зарегистрирован: 09 окт 2010, 15:49
Сообщения: 8
Для каждого захвата нужно создать нить (thread), в которой этот захват будет обрабатываться.
Всего захватов может быть, от 1-4, нужно их выводить на одну форму.

Код:
...

#include "cv.h"
#include "highgui.h"

int main(int argc, char** argv)
{
   cvNamedWindow("WebCamera", CV_WINDOW_AUTOSIZE);

   CvCapture* capture1 =cvCreateFileCapture( "test1.avi" );
   CvCapture* capture2 =cvCreateFileCapture( "test2.avi" );
   CvCapture* capture3 =cvCreateFileCapture( "test3.avi" );
   CvCapture* capture4 =cvCreateFileCapture( "test4.avi" );

   ...

   while(true) {

      image1 = cvQueryFrame(capture1);
      image2 = cvQueryFrame(capture2);
      image3 = cvQueryFrame(capture3);
      image4 = cvQueryFrame(capture4);

      ...

      cvShowImage("Example1", image1);
      cvShowImage("Example2", image2);
      cvShowImage("Example3", image3);
      cvShowImage("Example4", image4);

      if(cvWaitKey(0) == 27) break;

      cvRelease...
   
}


Нужен поток, чтобы не было задержек...


Последний раз редактировалось novoalex 04 фев 2011, 17:53, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OpenCV 2.2 захват видео в потоке (Вопрос)
СообщениеДобавлено: 04 фев 2011, 17:40 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Это постановка задачи, а с какими проблемами вы столкнулись?

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OpenCV 2.2 захват видео в потоке (Вопрос)
СообщениеДобавлено: 04 фев 2011, 17:40 
Не в сети
Аватара пользователя

Зарегистрирован: 21 май 2007, 22:57
Сообщения: 600
Откуда: Калининград
прог. языки: C++
это понятно :) так с какими проблемами вы при этом столкнулись? :)

_________________
RoboCraft.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OpenCV 2.2 захват видео в потоке (Вопрос)
СообщениеДобавлено: 04 фев 2011, 17:58 
Не в сети

Зарегистрирован: 09 окт 2010, 15:49
Сообщения: 8
http://nashruddin.com/Streaming_OpenCV_Videos_Over_the_Network

Пытался реализовать разными способами, не получается, короче нужен готовый пример, где правильно реализованы потоки..

Чтобы функции захватов были объявлены выше или в заголовочных файлах классами, или еще как..., а в main только запускались потоки... В общим как-то так.
Просто я с потоками в с++, первый раз сталкиваюсь.

Спасибо.

Но мне по сети не надо, локально нужно реализовать...

Как в данном случае можно использовать #include <pthread.h>?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OpenCV 2.2 захват видео в потоке (Вопрос)
СообщениеДобавлено: 04 фев 2011, 18:06 
Не в сети
Аватара пользователя

Зарегистрирован: 21 май 2007, 22:57
Сообщения: 600
Откуда: Калининград
прог. языки: C++
а при чём тут OpenCV? Раз хотите писать многопоточное приложение - вам так или иначе нужно разбираться с потоками :) Определяетесь с ОС под которую вам это нужно и вперёд :)

_________________
RoboCraft.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OpenCV 2.2 захват видео в потоке (Вопрос)
СообщениеДобавлено: 04 фев 2011, 18:10 
Не в сети
Аватара пользователя

Зарегистрирован: 06 июн 2007, 15:19
Сообщения: 1016
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев
Я попробую в общих чертах пофилософствовать. Если речь идёт о потоках (и их взаимодействии) то проблема – приложение иногда вылетает с «крэшем» (злой анхенделид эксепшен).

Основной процесс обеспечивает взаимодействие с пользователем (GUI), потоки – захватывают изображение и выводят его в диалоговое окно (причём напрямую), и соответственно конфликтуют с основным процессом, которые в этот же момент может занимать/вызывать ресурсы, которыми пользуются потоки (к примеру отрисовка окна). Тут просто нужно правильно построить взаимодействие между основным процессом и потоками: расставить критические секции к примеру, или через события (MFC), сигнал/слот (QT4) и т.д.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OpenCV 2.2 захват видео в потоке (Вопрос)
СообщениеДобавлено: 04 фев 2011, 18:27 
Не в сети

Зарегистрирован: 09 окт 2010, 15:49
Сообщения: 8
Извините за не внимательность, выше указанная ссылка показывает решение подобных задач полностью.
Но от комментариев не откажусь.

Спасибо.

ubuntu 10.04, opencv 2.2, wxWidgets, netbeans 6

Добавлено спустя 14 минут 14 секунд:
Все 4 потока захвата, которые я хочу реализовать, могут использовать какой то один IplImage, для того чтобы сделать подобие квадратора?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OpenCV 2.2 захват видео в потоке (Вопрос)
СообщениеДобавлено: 04 фев 2011, 18:32 
Не в сети
Аватара пользователя

Зарегистрирован: 21 май 2007, 22:57
Сообщения: 600
Откуда: Калининград
прог. языки: C++
да. только не забудьте обрамить работу с этой картинкой мьютексом.

_________________
RoboCraft.ru


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OpenCV 2.2 захват видео в потоке (Вопрос)
СообщениеДобавлено: 04 фев 2011, 18:47 
Не в сети

Зарегистрирован: 09 окт 2010, 15:49
Сообщения: 8
Понятно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OpenCV 2.2 захват видео в потоке (Вопрос)
СообщениеДобавлено: 18 фев 2011, 12:49 
Не в сети

Зарегистрирован: 09 окт 2010, 15:49
Сообщения: 8
Если я хочу вывести изображение с 1..N камер, каким образом лучше поступить: склеить все фреймы и вывести один общий, или же использовать контролы (например panel) компоновать их и выводить в каждый, соответствующий фрейм. Естественно все захваты в потоках.

Как лучще поступить, как будет производительней?

Спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OpenCV 2.2 захват видео в потоке (Вопрос)
СообщениеДобавлено: 21 фев 2011, 09:56 
Не в сети

Зарегистрирован: 09 окт 2010, 15:49
Сообщения: 8
Друзья, вопрос открыт.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OpenCV 2.2 захват видео в потоке (Вопрос)
СообщениеДобавлено: 21 фев 2011, 10:18 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
За это время можно было уже и эксперимент провести.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OpenCV 2.2 захват видео в потоке (Вопрос)
СообщениеДобавлено: 21 фев 2011, 12:44 
Не в сети

Зарегистрирован: 09 окт 2010, 15:49
Сообщения: 8
Я конечно подозреваю, что отрисовка на компонентах займет больше времени, но подтверждения моим догадкам нет...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO