2010-01-14 3 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와 같은 다른 색상 공간은 지원되지 않습니다. ruby-opencv 보석으로

+0

보석은 ['hornetseye-v4l2'] (https://rubygems.org/gems/hornetseye-v4l2) – Dorian

+0

입니다. 그러나 이것은 MacOS에서 작동하지 않으며 OpenCV 예제가 작동합니다 : http://stackoverflow.com/ a/39938139/407213 – Dorian

+0

@ 도리안 예, 맞습니다. GNU/Linux에서만 작동합니다. – wedesoft

0

Linux를 사용하고 있으므로 videodog을 사용해보십시오. 이 프로그램은 작은 프로그램으로,/dev/video0 장치에서 프레임을 캡쳐하면됩니다. 그 시점부터 비디오 이미지에서 얻은 JPEG 이미지를 처리 ​​할 루비 테크닉을 사용할 수 있습니다.

1

나는 실제로 사용한 적이 없지만 hornetseye가 좋아 보인다. 이 질문은 이미 here을 요구하고있다

+0

나는 호넷 씨를 사용하려고했지만 제대로 작동하지 않는 것 같습니다. – Malfist

0

Video4Linux API 포장 된 구조에서 데이터의 /dev/video* 장치에 특별한 ioctl의를 보내는 포함한다; 루비에서하기 쉬운 일이 아닙니다. (C에서 그다지 재미 있지는 않습니다.)

ruby-v4l은 Video4Linux를 사용하는 Ruby에서 사진을 캡처하기위한 확장 라이브러리입니다.

데비안에서

Orphaned의 메인테이너는 2005 년부터 활성화되지 않았습니다, 그래서 그것이 작동하지 않는 경우에 당신이 많은 지원을받을 수있을 거라 생각하지 않기 때문에.

더 현대적인 해결책은 Ruby에 적절한 libv4l 바인딩을 만드는 것일 수 있습니다. 그러나, 나는 그것에 대한 현재의 작업을 모른다.

0

:

require "opencv" 

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

그리고 맥 OS에 OpenCV의 설치 : brew install homebrew/science/opencv --HEAD합니다.