Я хотел бы создать программу, которая предложила бы привязанный режим для цифровой видео / фотокамеры (потребительские камеры, отличные от DSLR), чтобы вы могли подключить камеру к компьютеру (USB или другой) и использовать ее функции (сфотографировать, запись видео, масштабирование, фокусировка и т. д.).
Предполагаемая платформа на данный момент — Linux.
Насколько я знаю, ни один производитель не предлагает SDK для своих продуктов, кроме немногих (Canon, Olympus, Nikon), но только для своих зеркальных камер.
Я не новичок в C ++, но я не работал над многими проектами с ним. Тем не менее, я совершенно новичок в OpenCV, и я еще не знаю возможности этой библиотеки.
Для тестирования сборки opencv и моей конфигурации я создал простое приложение, которое просто берет поток с веб-камеры и отображает его в форме. (используя cvCreateCameraCapture)
Будет ли это работать с цифровой камерой или видеокамерой? Я предполагаю, что у них должен был бы быть доступный «режим веб-камеры», но это не так часто (по крайней мере, в камкордерах).
Как насчет FireWire или есть другие разъемы с поддержкой HD? Будут ли они узнаваемы OpenCV?
Я хотел бы держаться подальше от HDMI и захвата устройств, если это возможно (за дополнительную плату).
Поэтому я думаю, что мой вопрос: есть ли у кого-нибудь опыт работы с таким проектом: каковы предпочтительные характеристики камеры для такого использования (какие функции)? И есть ли библиотеки, чтобы облегчить мои проблемы 🙂
Я также смотрю в libgphoto2. И в случае необходимости я бы попробовал что-то наподобие написания драйвера для камеры, если это возможно, используя libusb, но я, честно говоря, не знаю, с чего начать.
Обнюхивая порт USB (с их родными драйверами), что делать с этой информацией впоследствии?
Я был бы очень признателен, если бы кто-то также смог пролить некоторый свет на эту тему — с чего начать, какие хорошие книги порекомендовать по написанию программного обеспечения для драйверов?
Кроме того, я знаю, что Linux Kino предлагает аналогичные функции, чтобы я мог проверить источник, но это только для IEEE 1394?
Последний вопрос: как я могу добиться, чтобы камера автоматически запускалась при запуске компьютера, если она подключена через USB?
Простите за длинный пост,
Спасибо и наилучшие пожелания!
Matekk
Чтобы запустить программу, которая взаимодействует с USB-подключенным устройством, вы добавляете udev
Правило для этого, как этот. Вы можете использовать ATTR{device}
а также ATTR{vendor}
и не KERNEL
как показано в примере.
Что касается самих камер, старый Canon P&S камеры сможет сделать привязная стрельба. Некоторые из них поддерживаются GPhoto. Если для вашей камеры нет поддержки Linux, но она может работать в других ОС, вам придется перепроектировать поддержку. Да, выполнять команды из прилагаемого программного обеспечения, прослушивать USB-порты, определять форматы сообщений, заставлять вашу программу писать / читать сообщения через libusb2 (или, возможно, добавить поддержку libgphoto2).
Еще одна возможность — камера на базе Android (не телефон, а настоящий P).&S). Никон и Самсунг оба делают эти вещи. Вероятно, нет необходимости что-либо перепроектировать, но вам, возможно, придется написать приложение для Android для камеры. Есть некоторые приложения, которые могут сделать это, но работают через WiFi / 3G, поэтому это должно быть возможно и для USB.
Других решений пока нет …