Проблемы с OpenCV |
Здравствуйте, гость ( Вход | Регистрация )
Проблемы с OpenCV |
x-8973 |
28.6.2013, 21:13
Сообщение
#1
|
Студент Группа: Участник Сообщений: 25 Регистрация: 22.2.2013 Пользователь №: 3720 Спасибо сказали: 0 раз(а) Репутация: 0 |
Копаю проблему "компьютерного зрения". Имеется Raspberry Pi с Rspbian'ом на борту и подключенной веб-камерой. Задача: получить изображение с веб-камеры и сохранить его в виде файла на внешний носитель.
Во время копания наткнулся на библиотеку openCV, которую все расхваливали, так как кроссплатформенная, бесплатная и прочие плюшки. Решил поставить. Как я 6 часов собирал ее из исходников, попутно поправляя всякие баги, отдельный разговор. Теперь же она тупо не хочет работать (хотя думается мне, что дело не в ней). Итак. Написан в Qt следующий код: main.cpp
testVideo.pro
После сборки и запуска через консоль получаем следующее: Цитата VIDIOC_QUERYMENU: Недопустимый аргумент VIDIOC_QUERYMENU: Недопустимый аргумент VIDIOC_QUERYMENU: Недопустимый аргумент [i] 640 x 480 [i] press Enter for capture image and Esc for quit И все. Окно с изображением не открывается, по нажатию Enter в файл ничего не сохраняется, на Esc не реагирует вообще. Поискав ошибку в интернетах, я нашел множество советов, начиная с указания другого параметра для функции cvCreateCameraCapture(), и заканчивая пересборкой ядра. Некоторые советы не сработали, некоторые не подходят. Вопрос к знатокам: кто работал с этой библиотекой под Linux вообще и под Raspbian в частности, и что еще можно сделать для того, чтобы оно заработало? Пы.Сы. Попытался сделать чтение картинки из файла - работает. |
|
|
Iron Bug |
1.7.2013, 6:37
Сообщение
#2
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
я не уверена, что Raspbian имеет необходимые для OpenCV версии библиотек. он вообще довольно урезанный, да и дебиан не так быстро обновляется. требования к OpenCV описаны у них в вики: http://opencv.willowgarage.com/wiki/Instal...%20%3a%20Debian
проверь для начала, что все твои библиотеки имеют минимальные требуемые версии. проверь, что камера вообще живёт под твоим ядром и драйвер адекватно реагирует на её vid:pid. P.S. как правило, если все требования соблюдены, то библиотеки собираются без проблем и без "исправления багов". Сообщение отредактировал Iron Bug - 1.7.2013, 6:40 |
|
|
x-8973 |
1.7.2013, 7:54
Сообщение
#3
|
Студент Группа: Участник Сообщений: 25 Регистрация: 22.2.2013 Пользователь №: 3720 Спасибо сказали: 0 раз(а) Репутация: 0 |
Камера вообще работает - проверено установкой motion'а. Ошибки происходили при сборке версии 2.2.0, самая последняя версия собралась без проблем и намного быстрее, с тем же результатом. Библиотеки все стоят свежие, по крайней мере репозиторий перед их утановкой апгрейдил и апдейтил.
|
|
|
Iron Bug |
1.7.2013, 9:07
Сообщение
#4
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
Библиотеки все стоят свежие вопрос не в свежести, а в соответствии версиям, указанным у разработчиков OpenCV. так как сам Дебиан серьёзно отстаёт от последних версий, как правило, а Распбиан отстаёт ещё и от Дебиана, то там могут быть несоответствия. но и более свежие версии тоже могут быть несовместимы. так что лучше ставить точно те версии, которые указаны у разработчиков библиотеки. у меня дома есть Распбиан, но сильно проапгрейдженный и там есть косяки с новой версией ядра и некотыми драйверами. я пока не копала глубоко, но есть подозрение, что свежее ядро местами недопилено под Raspberry. так что не исключено, что проблема не в библиотеках, а в ядре. |
|
|
Iron Bug |
1.7.2013, 20:51
Сообщение
#5
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
да, кстати: а что мешает использовать дебиановскую готовую библиотеку opencv? она всяко совместима с библиотеками и ядром и она в распбиане есть, я проверила.
P.S. тема вообще-то никаким образом к Qt не относится, её по идее надо перенести в раздел "другие библиотеки". Сообщение отредактировал Iron Bug - 1.7.2013, 20:53 |
|
|
Litkevich Yuriy |
1.7.2013, 21:03
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
x-8973 |
2.7.2013, 7:28
Сообщение
#7
|
Студент Группа: Участник Сообщений: 25 Регистрация: 22.2.2013 Пользователь №: 3720 Спасибо сказали: 0 раз(а) Репутация: 0 |
она в распбиане есть, я проверила. Тааак, с этого места поподробнее... Будет очень весело, если сейчас окажется, что ее можно установить через apt-get. И да. Я установил почти все библиотеки из списка, что приведен в вики (некоторых в репозитории не оказалось), после чего пересобрал opencv (без проблем вообще) и попробовал запустить проект. Если раньше программа могла использовать камеру, но не могла получить с нее изображение, то теперь она просто не может камеру найти. |
|
|
Iron Bug |
2.7.2013, 8:10
Сообщение
#8
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
|
|
|
x-8973 |
5.7.2013, 11:21
Сообщение
#9
|
Студент Группа: Участник Сообщений: 25 Регистрация: 22.2.2013 Пользователь №: 3720 Спасибо сказали: 0 раз(а) Репутация: 0 |
Все заработало после установки библиотек libopencv-highgui и libopencv-dev. Но вот только одна проблема - изображение в окне постоянно дергается и частично заливается разными цветами. Смахивает на воздействие каких-то помех на вебку. Видео записывается в ускоренном виде, причем чем меньший fps выставить в программе, тем ближе к норме будет скорость воспроизведения. Так вот, хотелось бы узнать, если кто в курсе, как избавиться от этих "помех", если это вообще помехи? Ну и с записью видео тоже разобраться не мешало бы.
|
|
|
Iron Bug |
5.7.2013, 11:46
Сообщение
#10
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
по описанию это больше похоже на глюк декодера или OpenGL. в смысле, софтовой библиотеки. попробуй записывать картинки в файлы и посмотри - есть там глюк или нет. если нет - значит, это точно декодер.
кроме того, у Raspberry есть один косяк с графикой, и есть к нему патчик в настройках в raspi-config - что-то про графику, там написано, что если глюки с экраном, то включите опцию ххх (не помню название). |
|
|
Текстовая версия | Сейчас: 22.11.2024, 4:13 |