скрытое меню

Linux получение снимка с UVC Web Камеры

Linux получение снимка с UVC Web Камеры
    Имеем
  • Ubuntu 12.04
  • Webcam USB 12 Megapixel HD Camera Web Cam 360 Degree MIC Clip-on For Skype Computer на Aliexpress.com
    Первым делом в linux для uvc камеры зададим определенное имя . Дело в том , что после подключения камеры в usb разъем камера в системе может появлится под именем /dev/video0, может /dev/video1 или еще как-то , постоянного стабильного имени у usb uvc камеры не будет. Исправить это просто:
  • смотрим через lsusb нашу камеру , например , у меня Bus 002 Device 003: ID 05e3:0510 Genesys Logic, Inc.
  • в каталоге /etc/udev/rules.d/ обычно несколько файлов, редактируем например 83-duplicate_devs.rules
  • добавляем KERNEL=="video*", SUBSYSTEM=="video4linux", SUBSYSTEMS=="usb", ATTRS{idProduct}=="0510", ATTRS{idVendor}=="05e3", SYMLINK+="webcam1"
  • делаем sudo udevadm trigger , можно глобально так sudo service udev restart
  • ls /dev/web* - теперь после подключения наша камера всегда будет иметь спец. имя /dev/webcam1
Достаточно установить: sudo apt-get install libav-tools
    и можно получить снимок командой из терминала
  • avconv -f video4linux2 -s 640x480 -i /dev/video0 -ss 0:0:2 -frames 1 ./out.jpg
При условии конечно , что ваша камера видна как /dev/video0 см. ls /dev/video*

Как теперь делать снимок по приходу сообщения в Mqqt cliente

Попробуем наверное самый популярный вариант под Linux на скриптовом языке Python. Установим openvc: Странно , после нескольких попыток получился такой только вариант (https://help.ubuntu.com/community/OpenCV):
создаем файл скрипта с таким содержанием #!/bin/bash version="$(wget -q -O - http://sourceforge.net/projects/opencvlibrary/files/opencv-unix | egrep -m1 -o '\"[0-9](\.[0-9]+)+' | cut -c2-)" echo "Installing OpenCV" $version mkdir OpenCV cd OpenCV echo "Removing any pre-installed ffmpeg and x264" sudo apt-get -qq remove ffmpeg x264 libx264-dev echo "Installing Dependenices" sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils ffmpeg cmake qt5-default checkinstall echo "Downloading OpenCV" $version wget -O OpenCV-$version.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/$version/opencv-"$version".zip/download echo "Installing OpenCV" $version unzip OpenCV-$version.zip cd opencv-$version mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON .. make -j2 sudo checkinstall sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf' sudo ldconfig echo "OpenCV" $version "ready to be used"
запускаем и долго идет установка , см. ошибок вроде нет
    проверяем , python скриптом , что import cv2 проходит:
  • #!/usr/bin/env python
  • try:
  • import sys
  • import cv2
  • except ImportError:
  • print "ERROR python-opencv must be installed"
  • sys.stdin.readline()
  • exit(1)
Яндекс.Метрика