Intereting Posts
Можно ли отключить программу GUI, запущенную в vifm из vifm? Результат неожиданного условия в сценарии ksh , / path / to / a / shell-script-file? (в сценарии оболочки) Где установить GRUB? Есть ли способ использовать sed или awk для фильтрации данных внутри заархивированного файла? Добавить текст перед последним совпадающим поисковым словом в файле Как перезапустить поток отфильтрованного видео с помощью VLC? Перенаправить stderr в конструкцию с двойными скобками Почему мой Perl не играет хорошо с Unicode? Обеспечивает ли BTRFS согласованность данных при отключении электроэнергии? выскочка и супервизор используются для одного и того же? Неизвестная файловая система после копирования Debian ISO с dd Найдите наименьшие числа во втором столбце, соответствующие значениям индекса в первом столбце коэффициент дедупликации zfs «низкий» Как изменить настройки, чтобы разрешить запись на жесткий диск USB в Debian

Захват необработанного изображения с устройства 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 (только для исходного источника) ") отсутствовать.

Есть идеи?