opencv — привязанное приложение камеры в linux с переполнением стека

Я хотел бы создать программу, которая предложила бы привязанный режим для цифровой видео / фотокамеры (потребительские камеры, отличные от DSLR), чтобы вы могли подключить камеру к компьютеру (USB или другой) и использовать ее функции (сфотографировать, запись видео, масштабирование, фокусировка и т. д.).
Предполагаемая платформа на данный момент — Linux.

Насколько я знаю, ни один производитель не предлагает SDK для своих продуктов, кроме немногих (Canon, Olympus, Nikon), но только для своих зеркальных камер.

Я не новичок в C ++, но я не работал над многими проектами с ним. Тем не менее, я совершенно новичок в OpenCV, и я еще не знаю возможности этой библиотеки.
Для тестирования сборки opencv и моей конфигурации я создал простое приложение, которое просто берет поток с веб-камеры и отображает его в форме. (используя cvCreateCameraCapture)

Будет ли это работать с цифровой камерой или видеокамерой? Я предполагаю, что у них должен был бы быть доступный «режим веб-камеры», но это не так часто (по крайней мере, в камкордерах).
Как насчет FireWire или есть другие разъемы с поддержкой HD? Будут ли они узнаваемы OpenCV?
Я хотел бы держаться подальше от HDMI и захвата устройств, если это возможно (за дополнительную плату).

Поэтому я думаю, что мой вопрос: есть ли у кого-нибудь опыт работы с таким проектом: каковы предпочтительные характеристики камеры для такого использования (какие функции)? И есть ли библиотеки, чтобы облегчить мои проблемы 🙂

Я также смотрю в libgphoto2. И в случае необходимости я бы попробовал что-то наподобие написания драйвера для камеры, если это возможно, используя libusb, но я, честно говоря, не знаю, с чего начать.
Обнюхивая порт USB (с их родными драйверами), что делать с этой информацией впоследствии?

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

Кроме того, я знаю, что Linux Kino предлагает аналогичные функции, чтобы я мог проверить источник, но это только для IEEE 1394?

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

Простите за длинный пост,

Спасибо и наилучшие пожелания!

Matekk

3

Решение

Чтобы запустить программу, которая взаимодействует с USB-подключенным устройством, вы добавляете udev Правило для этого, как этот. Вы можете использовать ATTR{device} а также ATTR{vendor} и не KERNEL как показано в примере.

Что касается самих камер, старый Canon P&S камеры сможет сделать привязная стрельба. Некоторые из них поддерживаются GPhoto. Если для вашей камеры нет поддержки Linux, но она может работать в других ОС, вам придется перепроектировать поддержку. Да, выполнять команды из прилагаемого программного обеспечения, прослушивать USB-порты, определять форматы сообщений, заставлять вашу программу писать / читать сообщения через libusb2 (или, возможно, добавить поддержку libgphoto2).

Еще одна возможность — камера на базе Android (не телефон, а настоящий P).&S). Никон и Самсунг оба делают эти вещи. Вероятно, нет необходимости что-либо перепроектировать, но вам, возможно, придется написать приложение для Android для камеры. Есть некоторые приложения, которые могут сделать это, но работают через WiFi / 3G, поэтому это должно быть возможно и для USB.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]