Intereting Posts
восстановить пароль на удаленном сервере Что я должен делать с Python 2.7.9, не ищущим сертификатов SSL в нужном месте на FreeBSD? Как записать iso во время загрузки W: ошибка GPG: … InRelease: следующие подписи не могут быть проверены, поскольку открытый ключ недоступен Каков правильный синтаксис клонирования раздела ntfs в разреженный файл на другом диске ntfs? Можно ли изменить индексный дескриптор файла. Каковы различные условия, когда можно изменить индексный дескриптор файла? NetworkManager не автоматически подключается к Wi-Fi при входе в систему Как установить get_player в Fedora? Как применить патч ядра xenomai на debian? Как настроить меньше для чтения неиспользуемых данных в буфер? Раздел все еще почти заполнен, но файлы, похоже, были потеряны. Что случилось? Почему \ n расширяется до n в bash? imagemagick – многократное расширение Почему я не могу использовать аутентификацию открытого / закрытого ключа с помощью ssh в Arch Linux? Как контролировать уровень громкости микрофона?

Захват необработанного изображения с устройства V4L (веб-камера)

Я использую малиновый пи для контроля холодильника самообслуживания. Когда дверь открывается, запускается сценарий оболочки для съемки снимков, пока дверь не закроется снова. Проблема, однако, в скорости ARM-процессора. Захват в полном разрешении с использованием fswebcam занимает 2-4 секунды, что слишком велико.

Наша идея решить эту проблему состоит в том, чтобы разделить процесс:

  1. Захват необработанных изображений и сохранение на карту памяти
  2. После закрытия двери обработайте необработанные данные. Это не критично.

Теперь мои вопросы:

  1. Возможно ли это?
  2. Какую программу я должен использовать?

То, что у нас есть до сих пор:

 #!/bin/bash tempdir=/tmp/fswebcam host="167.174.70.42" destdir=~/fsweb tformat=%Y-%m-%d_%H-%M-%S if [ ! -d "$tempdir" ]; then mkdir $tempdir fi cd $tempdir dooropentime=$(date +$tformat) for i in {1..3} do starttime=$(date +%s%N) echo -e "\n==== starting capture at" $(date +%H:%M:%S.%N) "==== (# $i)" fswebcam --device /dev/video0 --input 0 --resolution 1280x720 --timestamp "$tformat" $tformat.jpg # fswebcam --device RAW:/dev/video0 --palette NV12MB --resolution 1280x720 $tformat.jpg endtime=$(date +%s%N) echo -e "==== capture finished at" $(date +%H:%M:%S.%N) "==== (in "$((($endtime - $starttime) / 1000000))"ms)\n" done echo "packing..." tar -cjf $dooropentime.tar.bz2 *.jpg echo "copying..." scp *.tar.bz2 pi@$host:$destdir #cp *.tar.bz2 $destdir rm -r $tempdir/* echo "done!" 

Он по-прежнему довольно сырой, но, по крайней мере, он работает. Захват кадра занимает примерно 3300 мс на пи.

--device RAW:/dev/video0 выдает ошибку несовместимости палитры, а палитра NV12MB ( http://www.firestorm.cx/fswebcam/ ) fswebcam-20060604: добавлен тип палитры NV12MB (только для исходного источника) ") отсутствовать.

Есть идеи?