Данная инструкция объясняет как подружить IP камеру и OpenCV. В моем случае я использовал камеру D-link DCS-910 и OpenCV 2.4 (можно любой).
Рассказываю по шагам.
1. Настраиваем IP камеру через web-интерфейс. Проверяем, работает ли она там. Запоминаем ее IP.
2. Качаем и устанавливаем
IP Camera [JPEG/MJPEG] DirectShow Filter http://www.webcamxp.com/download.aspx3. Качаем и запускаем
GraphStudio http://blog.monogram.sk/janos/tools/monogram-graphstudio/4. Собираем граф как указано ниже:
Вложение:
Ashampoo_Snap_2012.05.04_14h53m11s_001_ttt-grf - MONOGRAM GraphStudio.png [ 26.73 КиБ | Просмотров: 7738 ]
5. Правой кнопкой на IP Camera и выбрать Properties. Здесь нужно настроить под вашу камеру: брэнд, модель, IP адрес, порт,
авторизация. Пара скользких моментов:
- моя камера не запускалась, если не указаны были данные авторизации. Даже если нет пароля на вход в камеру.
- в конце настроек необходимо обязательно нажать
Save, а только потом
OK. В противном случае все Ваши настройки не сохранятся.
Вложение:
Ashampoo_Snap_2012.05.04_14h55m13s_002_IP Camera -JPEG-MJPEG- Properties.png [ 94.86 КиБ | Просмотров: 7570 ]
6. Запускаем наш граф кнопкой play и любуемся в отдельном окне видео, которое шлет нам камера. Если изображение не появляется, то проверяйте настройки фильтра IP Camera. Или, что особенно бесит, перезапустите программу.
7. После того как вы увидели картинку с вашей камеры. Закрываем
GraphStudio. Это важно. Я пол дня потерял не понимая почему не работает камера. И дальше работаем в VS 2008. Тут можно использовать любой из двух стандартных выводов картинки на экран. Оба они прекрасно описаны на сайте
http://robocraft.ru.
- стандартными средствами OpenCV;
http://robocraft.ru/blog/computervision/275.html- через дополнительную библиотеку
videoInput.
http://robocraft.ru/blog/computervision/420.htmlКакой бы метод не выбрали, необходимо внести в код маленькие доработки.
В первом случае:
Код:
CvCapture* capture = cvCreateCameraCapture(1); //CV_CAP_ANY);
Во втором случае при запуске консоли вашего приложения в самом начале будут указаны все найденные на компьютере источники видеопотока. Находим нашу камеру и видоизменяем код:
Код:
// получение списка доступных видеоустройств, возвращается число устройств
int numDevices = VI.listDevices();
int device1=1; // номер по порядку выбранного Вами устройства -1.
У меня было так:
VIDEOINPUT SPY MODE!
SETUP: Looking For Capture Devices
SETUP: 0) 1.3M WebCam
SETUP: 1) IP Camera [JPEG/MJPEG]
SETUP: 2) PS3Eye Camera
SETUP: 3 Device(s) found
Наш фильтр под номером 2. Значит мне в коде необходимо использовать коэффициент 1.
Обращаю ваше внимание, что в списке есть так же PS3Eye камера, дрова которой я ставил ранее. Очень хорошая камера с сумасшедшим fps!
На этом все. Дальше вы работаете с вашей IP камерой, как с обычной USB-камерой, которую, уверен, уже подключали ранее.