2010-01-14 60 views

回答

10

我是Hornetseye的開發者。您可以按如下方式使用HornetsEye的V4L2接口捕捉圖像。

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,GRAY,RGB24。請注意,目前還不支持其他色彩空間,如MJPEG。

+0

寶石是['hornetseye-v4l2'](https://rubygems.org/gems/hornetseye-v4l2) – Dorian 2016-10-08 21:42:33

+0

但是這在macOS上不起作用,OpenCV示例工作原理如下:http://stackoverflow.com/ a/39938139/407213 – Dorian 2016-10-08 22:44:10

+0

@Dorian是的,這是正確的。它只能在GNU/Linux下運行。 – wedesoft 2016-10-18 21:36:14

0

由於您使用的是Linux,請嘗試videodog。這是一個小程序,它可以完成一件事,並做得很好:從/ dev/video0設備中捕獲一幀。從這一點開始,您可以使用任何您想要處理從videodog獲得的JPEG圖像的Ruby技術。

1

我從來沒有真正使用它,但hornetseye看起來不錯。這個問題也已經被問here

+0

我一直在嘗試使用hornetseye,但它似乎沒有充分發揮作用。 – Malfist 2010-01-15 17:30:56

0

Video4Linux API涉及發送特殊ioctl S到/dev/video*裝置,在堆積結構數據; Ruby不是一件容易的事情。 (這還不是全部由C那麼多的樂趣,無論是。)

ruby-v4l是採用video4linux在Ruby中捕捉畫面的擴展庫。

在Debian的Orphaned,因爲它的維護者並沒有自2005年以來一直活躍,因此,如果它不工作,我不認爲你能得到多少支持。

更現代的解決方案可能是爲Ruby創建合適的libv4l綁定。但是,我不知道目前的任何工作。

0

隨着ruby-opencv寶石:

require "opencv" 

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

並安裝在Mac OS的OpenCV:brew install homebrew/science/opencv --HEAD