Nuzhny 243 Report post Posted June 9, 2011 У тебя установлен k-lite codeck pack? С ним ставится graphstudio.exe. Попробуй через неё захватить и вывести видео. Получилось? Значит, через OpenCV тоже должно (graphstudio работает через DirectShow). Если там получается, а в OpenCV нет, то надо в отладчике смотреть как внутри производится захват. Share this post Link to post Share on other sites
chehov85 1 Report post Posted June 25, 2011 Здравствуйте. Случайно наткнулся на интересующую меня тему: “Захват видео в потоке” http://roboforum.ru/forum51/topic9490.html отписался автору, на данную тему, в последних топиках. В общем, ответа не последовало. Посему, прошу Вас обсудить данную тему. Вот собственно вопрос автора: Здравствуйте уважаемые. Вопрос короткий и по существу: Имеется скажем 2, 3 или 4 камеры, необходимо работать с каждой в своем потоке. Кто решал подобный вопрос, как реализовать многопоточность ? Спасибо. С уважением, Антон. Share this post Link to post Share on other sites
Nuzhny 243 Report post Posted June 26, 2011 Какой язык, какая ОС? На мой вкус, boost::thread один из самых удобных кросплатформенных вариантов для С++. Share this post Link to post Share on other sites
Smorodov 578 Report post Posted July 11, 2011 Набросал небольшой класс для управления свойствами камеры. Я тестировал на Logitech C905, пробовал управлять фокусом.Вроде все работает. Документацию встроил в заголовочник. Параметры, которыми можно управлять, если это поддерживается камерой, перечислены здесь: MSDN CameraControlUtils.rar 1 Share this post Link to post Share on other sites
Nuzhny 243 Report post Posted July 11, 2011 Ссылку на MSDN надо немного поправить. Share this post Link to post Share on other sites
Smorodov 578 Report post Posted July 11, 2011 Спасибо, поправил. Share this post Link to post Share on other sites
вф1 0 Report post Posted July 19, 2011 Есть такая камера. Она принимает видео через PCIe фреймграббер. К ней есть свой SDK, естественно, но хочется юзать давно знакомый оpencv. Можно ли прикрутить opencv к посторонней камере и как это сделать? Share this post Link to post Share on other sites
Nuzhny 243 Report post Posted July 19, 2011 Надо узнать, какие драйвера она использует. Если DirectShow, то можно и через OpenCV. Share this post Link to post Share on other sites
chehov85 1 Report post Posted July 27, 2011 Какой язык, какая ОС? На мой вкус, boost::thread один из самых удобных кросплатформенных вариантов для С++. wxWidgets Windows/Unix, предполагается использовать wxThread. У кого возникали проблемы со склейкой изображений с нескольких камер? Или лучше отрисовывать на компонентах? Share this post Link to post Share on other sites
mrgloom 242 Report post Posted July 27, 2011 много потоков -накладные расходы на потоки. все в одно изображение - накладные расходы на копирование. что быстрее хз, без потоков легче писать код. Share this post Link to post Share on other sites
chehov85 1 Report post Posted July 27, 2011 что быстрее хз, без потоков легче писать код. Ну по принципу да, всеравно многопоточность проявится как я понимаю только на многопроцессорных системах Share this post Link to post Share on other sites
Smorodov 578 Report post Posted July 27, 2011 Есть смысл сделать два потока: поток пользовательского интерфейса и поток захвата. Это полезно сделать и на однопроцессорной системе. Share this post Link to post Share on other sites
Виталий 6 Report post Posted August 27, 2011 Не нашел подобную тему, поэтому создаю. Опишу несколько моделей с которыми я работал: 1)самая дешевая модель от a4tech, модель не помню. Отличалась от всех другим тем, что имела встроенную ик подсветку и не имела ик фильтра. возможна съемка в темноте. цвета сильно искажаются из-за отсутствия ик фильтра. 2) Hercules Classic Link Дешовая камера от геркулес. В свое время никак не удалось заставить ее работать с опенсв. Пробовал стандартными средствами и через библиотеку videoinput 3) Hercules Deluxe Optical Glass Эта камера мне понравилась. Качество картинки хорошее для этого ценового уровня. При среднем освешении выдает свои 30фпс при разрешении 640*480. Ик фильтр при необходимости легко убирается. Рекомендую как дешевый вариант. 4) Microsoft LifeCam Studio Камера с разрешением 1920*1080, качество картинки отличное. В опенсв работает нормально. Для меня основным недостатком было - сильная нагрузка на процессор даже при разрешении 640*480 - феном х6(6 ядер) грузился на 20-30 процентов при обычном выводе видео на экран из программы работы с камерой. Порадовало наличие автофокуса, в драйвере его можно вручную настроить. Камера достаточно сильно нагревается при работе. Для тех кому нужно ик сообщаю - ик фильтр выполнен в виде напыления на одну из линз, поэтому при его выдирании сбивается фокус и нельзя снимать на дальних расстояниях. Опишите какие плюсы и минусы ваших камер. Интересует Logitech C910, насколько она требовательна к процессору при работе. Планирую купить пару камер для 3д реконструкции. На какие параметры следует обратить внимание? две камеры одной модели нормально работают на одном компе? 1 Share this post Link to post Share on other sites
Виталий 6 Report post Posted September 1, 2011 неужели никто с камерой не работает? Share this post Link to post Share on other sites
Nuzhny 243 Report post Posted September 2, 2011 Я беру видео с ip камер или плат захвата. Вебки как-то не прижились. Share this post Link to post Share on other sites
Dr.Hell 5 Report post Posted September 2, 2011 У меня были две одинаковые вебки от sony 2001 года выпуска, и они никак не хотели вместе работать, работала только та, которую первую подключили. Так что, тут не угадаешь, какие две будут работать, а какие нет. В итоге купил вот такую камеру: http://roboforum.ru/forum36/topic1350-45.html#p214256 Вообще я в камерах совсем не разбираюсь, даже не знал, что в некоторых бывает ик-фильтр. Share this post Link to post Share on other sites
Виталий 6 Report post Posted September 2, 2011 Вообще я в камерах совсем не разбираюсь, даже не знал, что в некоторых бывает ик-фильтр. Ик фильтр есть почти во всех камерах. его нет только в тех, которые сделаны для ночной съемки. За ссылку спасибо. Share this post Link to post Share on other sites
proteus 0 Report post Posted October 24, 2011 Подскажите пожалуйста, имеется веб-камера с максимальным разрешением в 5Мп, как используя OpenCV получить снимок с максимальным разрешением веб-камеры. Функция QueryFrame() дает снимки с разрешением видеопотока. Share this post Link to post Share on other sites
Nuzhny 243 Report post Posted October 24, 2011 Попробовал построить граф в graphstudio для своей web-камеры. Отдельный кадр большого разрешения получить не удалось. Скорее всего, OpenCV тоже не сможет. Share this post Link to post Share on other sites
Captain 0 Report post Posted November 15, 2011 Кто-нибудь знает, как получить доступ к IP-камере в OpenCV 2.3.0? Пробовал таким способом: CvCapture *pCapture = cvCreateFileCapture("http://192.168.1.17:80/video1.mjpg"); if (pCapture != NULL) { int nFrameWidth = cvGetCaptureProperty(pCapture, CV_CAP_PROP_FRAME_WIDTH); int nFrameHeight = cvGetCaptureProperty(pCapture, CV_CAP_PROP_FRAME_HEIGHT); IplImage *pImg = cvCreateImage(cvSize(nFrameWidth, nFrameHeight), IPL_DEPTH_8U, 3); cvNamedWindow("cam view"); while (true) { pImg = cvQueryFrame(pCapture); cvShowImage("cam view", pImg); } cvDestroyWindow("cam view"); cvReleaseImage(&pImg); cvReleaseCapture(&pCapture); } В окне cam view ничего не показывается, хотя под отладчиком проверял значение pImg и оно не нулевое. Share this post Link to post Share on other sites
Smorodov 578 Report post Posted November 15, 2011 *pImg не нулевое, так как было инициализировано: IplImage *pImg = cvCreateImage(cvSize(nFrameWidth, nFrameHeight), IPL_DEPTH_8U, 3); что не обязательно. Вы лучше проверьте pCapture. Может еще проблема со слешами в адресе. Share this post Link to post Share on other sites
Captain 0 Report post Posted November 16, 2011 Вы лучше проверьте pCapture. Может еще проблема со слешами в адресе. Я проверяю во второй сроке: if (pCapture != NULL) Или нужно как-то по-другому? Кстати заметил, что вызов cvCreateFileCapture занимает очень много времени. Если подождать, то выполнение всё-таки проходит дальше. При этом в консоль выводятся сообщения типа: [mjpeg @ 00b91800]Estimating duration from bitrate, this may be inaccurate [mjpeg @ 00d53fc0]Estimating duration from bitrate, this may be inaccurate Share this post Link to post Share on other sites
Smorodov 578 Report post Posted November 16, 2011 Да, if (pCapture != NULL) я пропустил. У меня камера открывается таким адресом: http://login:password@192.168.1.9/GetData.cgi?.mjpg Порт там не указан, зато есть логин и пароль. Может попробовать что то типа: http://192.168.1.9/GetData.cgi?.mjpg Причем, если посмотреть на Ваш адрес, то там тоже есть ':', но оно отделяет адрес от порта, может он адрес логином считает? (Это домыслы, пробовать лень) Share this post Link to post Share on other sites
Captain 0 Report post Posted November 17, 2011 В общем суть проблемы я так и не понял, но похоже, что дело не в камере. Сделал запись кадров в файл вместо вывода в окно и наконец-то увидел изображение с камеры: CvCapture *pCapture = cvCreateFileCapture("http://192.168.1.17:80/video1.mjpg"); if (pCapture != NULL) { IplImage *pImg = NULL; int i = 0; char filename[20]; while (true) { pImg = cvQueryFrame(pCapture); sprintf(filename, "frame%i.jpg", i++); cvSaveImage(filename, pImg); } cvReleaseImage(&pImg); cvReleaseCapture(&pCapture); } Почему через cvShowImage не выводится в окно - для меня загадка. Share this post Link to post Share on other sites
Nuzhny 243 Report post Posted November 17, 2011 А для меня - нет. См. функцию cvWaitKey. 1 Share this post Link to post Share on other sites