Получение снимков с веб-камер в рубине - PullRequest
4 голосов
/ 15 января 2010

Как сделать снимки с веб-камеры в рубине? Я знаю, что устройство веб-камеры включено / dev / video0, но как мне получить с него изображение?

Ответы [ 5 ]

10 голосов
/ 01 февраля 2010

Я разработчик Hornetseye . Вы можете захватывать изображения с V4L2-интерфейсом HornetsEye следующим образом.

require 'rubygems'
require 'hornetseye_v4l2'
require 'hornetseye_xorg'
require 'hornetseye_rmagick'
include Hornetseye
input = V4L2Input.new '/dev/video0'
img = X11Display.show { input.read }
img.to_ubytergb.save_ubytergb 'test.png'

В настоящее время поддерживаются следующие цветовые пространства: UYVY, YUYV, YUV420, GREY, RGB24. Обратите внимание, что другие цветовые пространства, такие как MJPEG, в настоящее время не поддерживаются.

1 голос
/ 15 января 2010

Я никогда не использовал его на самом деле, но Хорнсай выглядит хорошо Этот вопрос также уже задавался здесь

0 голосов
/ 10 октября 2016

С драгоценным камнем ruby-opencv:

require "opencv"

capture = OpenCV::CvCapture.open
sleep 1 # Warming up the webcam
capture.query.save("image.jpg")
capture.close

И чтобы установить OpenCV на macOS: brew install homebrew/science/opencv --HEAD.

0 голосов
/ 15 января 2010

API Video4Linux включает отправку специальных ioctl s на устройство /dev/video* с данными в упакованных структурах; не то, что легко сделать из Ruby. (С C это тоже не так уж и весело).

ruby-v4l - библиотека расширений для захвата изображений в Ruby с использованием Video4Linux.

Потерянный в Debian, поскольку его сопровождающий не был активен с 2005 года, поэтому, если он не работает, я не думаю, что вы сможете получить большую поддержку.

Более современным решением, вероятно, было бы создание правильной привязки libv4l для Ruby. Однако я не знаю ни одной настоящей работы по этому вопросу.

0 голосов
/ 15 января 2010

Поскольку вы используете Linux, попробуйте videodog . Это небольшая программа, которая делает одну вещь и делает это хорошо: захват кадра с вашего устройства / dev / video0. С этого момента вы можете использовать любую технику Ruby, которую хотите обработать изображение JPEG, которое вы получили из видеодога.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...