SimpleCV базовая отладка getImage

Я только что успешно установил SimpleCV на свой Windows 7 Dell XPS. К нему подключена веб-камера HP Deluxe KQ246AA. Я перешел к оболочке SimpleCV. Я пытаюсь запустить учебник, чтобы сделать и показать изображение с веб-камеры. Из оболочки SimpleCV я выполняю следующие строки:

cam = Camera()
img = cam.getImage()
img.show()

После первой команды загорается лампочка на моей веб-камере. После второй команды ничего не происходит. После третьей команды я получаю некоторый текстовый вывод: <SimpleCV.Display.Display instance at 0x038D2A58> и всплывающее окно, которое полностью черное, а затем это новое окно делает классические окна «Не отвечает» и спрашивает меня, хочу ли я принудительно закрыть. Когда я закрываю Shell, свет на веб-камере гаснет.

Я также пробовал:

img.save('C:/path/to/file/name.jpg');

Который сохранил изображение в правильном месте, но изображение было просто черным. Я предполагаю, что изображение не захватывается правильно, но я не знаю, почему это приводит к сбою команды img.show().

Я попытался сослаться на документы SimpleCV (http://doc.simplecv.org/), но ссылка не существует. Я думаю, что я действительно выиграю от SimpleCV. Есть ли у кого-нибудь предложения, как мне отладить эту проблему? Или где документация? Я хотел бы хотя бы убедиться, что я могу правильно снимать изображения с веб-камеры. Затем приступайте к работе с некоторыми другими функциями.

** РЕДАКТИРОВАТЬ **

Я установил пакет SimpleCV из файла .deb, загруженного с их веб-сайта, на свой Thinkpad X61 под управлением Ubuntu 10.10. 5 минут на установку. Я подключил очень универсальную веб-камеру (даже не знаю, какой она марки) и повторил 3 строки кода выше. Я ДЕЙСТВИТЕЛЬНО видел изображение с моей веб-камеры. Так что на линуксе все работало и было очень просто.


person jeffery_the_wind    schedule 22.02.2012    source источник


Ответы (2)


Я один из разработчиков SimpleCV. Извините, я не заметил, что наш doc.simplecv.org не работает. Я постараюсь заставить его работать прямо сейчас, это всего лишь ярлык для http://www.simplecv.org/doc/.

Камера может просто не работать в Windows, или вам может потребоваться установить драйверы вручную. Линукс намного лучше справляется с этим. Вы также можете протестировать свою камеру в Linux, установив программу Cheese из магазина приложений или:

sudo apt-get install cheese

Я обычно Windows парень. Я не нашел хорошего средства просмотра веб-камеры Windows, которое было бы бесплатным и с открытым исходным кодом, чтобы проверить, работает ли ваша камера. Мы работаем над версией 1.3 и пытаемся провести системный тест, чтобы уведомить вас о возникновении каких-либо проблем. Посмотрите, можете ли вы проверить, работает ли ваша камера в Windows, прежде чем пытаться использовать SimpleCV.

person xamox    schedule 27.02.2012
comment
~ Спасибо за информацию и работу над этим замечательным пакетом резюме! Я предпочитаю среду разработки Python для Linux, поэтому меня не очень расстраивают проблемы совместимости драйверов Windows. Просто у меня на работе коробка с Windows 7, поэтому я сначала попробовал это. Веб-камера работает со скайпом и видеочатом Google, поэтому я не уверен, почему simpleCV ее не улавливает. Спасибо за ссылку на документы, это то, что мне нужно. Теперь, если я смогу заставить ZXING работать для чтения штрих-кодов, тогда все будет готово. - person jeffery_the_wind; 27.02.2012
comment
Без проблем. Дайте мне знать, как идут дела с ZXING, я только что обновил оболочку, чтобы она теперь правильно устанавливалась как модуль, хотя я не тестировал на Windows. Кроме того, я чаще проверяю наш личный справочный форум (help.simplecv.org), если вы ищете более быстрый ответы. - person xamox; 28.02.2012
comment
эта строка в README для zxing ant -f javase2/build.xml. Нет папки с именем javase2, есть только одна с именем javase. - person jeffery_the_wind; 29.02.2012
comment
Он также указывал на неправильное место загрузки. Должно быть исправлено, спасибо за наводку. - person xamox; 02.03.2012

Рассмотрим следующий код:

img = cam.getImage()

если по какой-то причине устройство не может получить изображение, img будет NULL, а вызов img.show() обязательно приведет к сбою приложения. Вам нужно добавить надлежащие проверки, чтобы предотвратить такого рода проблемы:

import sys

cam = Camera()
if (not cam)
    print 'Camera() Failed!'
    sys.exit(-1)

img = cam.getImage()
if (not img)
    print 'getImage() Failed!'    
    sys.exit(-1)

# Everything succeeded, display image!
img.show()
person karlphillip    schedule 22.02.2012
comment
Спасибо за помощь. Знаете ли вы команды для отображения этих ошибок? - person jeffery_the_wind; 22.02.2012
comment
Я проверил, и cam определяется как объект SimpleCV.Camera.Camera, а img определяется как объект SimpleCV.ImageClass.Image. - person jeffery_the_wind; 22.02.2012
comment
Вы разработчик программного обеспечения или энтузиаст? Обновил мой ответ. - person karlphillip; 22.02.2012
comment
Я разработчик, но у меня нет опыта работы с компьютерным зрением. Как я уже сказал, я не могу найти документы для этого пакета в Интернете. - person jeffery_the_wind; 22.02.2012
comment
Вы пробовали мой обновленный код? Он печатает что-нибудь на вашей консоли? - person karlphillip; 22.02.2012
comment
Да, я только что попробовал, он завершается без ошибок. Как я писал выше, я только что выполнил cam или img, и он отображает тип объекта, поэтому это заставляет меня поверить (также по вашему коду), что cam и img определяются правильно... Насколько я понимаю, Simple CV является модифицированным OpenCV, я проверил документы OpenCV и нашел список поддерживаемых веб-камер здесь-> opencv.willowgarage.com/wiki/Welcome/OS. Моей веб-камеры нет в списке... - person jeffery_the_wind; 23.02.2012
comment
img.show() просто отображает пустое изображение, а затем вылетает. Я проверил это, импортировав сохраненное изображение, используя my_image = Image('name_of_image.jpg');, а затем my_image.show(). Это показывает изображение правильно, но новое всплывающее окно с изображением все еще зависает и вылетает... - person jeffery_the_wind; 23.02.2012
comment
Ах, извините за это. Если веб-камера не поддерживается, мы ничего не можем сделать. Удачи! - person karlphillip; 23.02.2012