我怎样才能用Ruby的网络摄像头拍摄快照呢?我知道网络摄像头设备在/dev/Video0上,但我如何从它获得照片?
gorkyyrv1#
我是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、GREAD、RGB24。请注意,目前不支持其他颜色空间,如MJPEG。
n7taea2i2#
我从来没有真正用过它,但hornetseye看起来很好。这个问题在这里也已经被问过了
6jygbczu3#
因为您使用的是Linux,所以可以尝试使用videodog。这是一个小程序,它只做一件事,而且做得很好:从您的/dev/Video0设备捕获一帧。在这一点上,您可以使用任何Ruby技术来处理从VIDEODOG获得的JPEG图像。
wribegjk4#
Video4Linux API涉及向/dev/video*设备发送特殊的ioctl,数据采用打包结构;这不是Ruby容易做到的事情。(对于C语言来说,这也不是很有趣。)ruby-v4l是一个扩展库,用于使用Video4Linux捕获Ruby中的图片。
/dev/video*
Orphaned在Debian中,因为它的维护者自2005年以来一直不活跃,所以如果它不能工作,我认为你不会得到太多的支持。
更现代的解决方案可能是为Ruby创建适当的libv4l绑定。然而,我不知道目前有任何关于这方面的工作。
u1ehiz5o5#
使用ruby-opencv宝石:
ruby-opencv
require "opencv" capture = OpenCV::CvCapture.open sleep 1 # Warming up the webcam capture.query.save("image.jpg") capture.close
并在MacOS上安装OpenCV:brew install homebrew/science/opencv --HEAD。
brew install homebrew/science/opencv --HEAD
5rgfhyps6#
我已经为新的OpenCV编写了一个小的 Package 器-gem,因为Ruby-OpenCV停留在OpenCV2上,而OpenCV2在一些现代系统上是不可用的。只要安装了OpenCV,它应该可以在MacOS和Linux上运行。
这就是:https://github.com/khasinski/framegrabber
在您的情况下,它将是:
Framegrabber.open(0) # 0 is the device id image = Framegrabber.grab_image # Gets you a Magick::Image object Framegrabber.release # turns off the webcam
6条答案
按热度按时间gorkyyrv1#
我是Hornetseye的开发者。您可以使用HornetsEye的V4L2-接口进行图像采集,如下所示。
目前支持的色彩空间有UYVY、YUYV、YUV420、GREAD、RGB24。请注意,目前不支持其他颜色空间,如MJPEG。
n7taea2i2#
我从来没有真正用过它,但hornetseye看起来很好。这个问题在这里也已经被问过了
6jygbczu3#
因为您使用的是Linux,所以可以尝试使用videodog。这是一个小程序,它只做一件事,而且做得很好:从您的/dev/Video0设备捕获一帧。在这一点上,您可以使用任何Ruby技术来处理从VIDEODOG获得的JPEG图像。
wribegjk4#
Video4Linux API涉及向
/dev/video*
设备发送特殊的ioctl,数据采用打包结构;这不是Ruby容易做到的事情。(对于C语言来说,这也不是很有趣。)ruby-v4l是一个扩展库,用于使用Video4Linux捕获Ruby中的图片。
Orphaned在Debian中,因为它的维护者自2005年以来一直不活跃,所以如果它不能工作,我认为你不会得到太多的支持。
更现代的解决方案可能是为Ruby创建适当的libv4l绑定。然而,我不知道目前有任何关于这方面的工作。
u1ehiz5o5#
使用
ruby-opencv
宝石:并在MacOS上安装OpenCV:
brew install homebrew/science/opencv --HEAD
。5rgfhyps6#
我已经为新的OpenCV编写了一个小的 Package 器-gem,因为Ruby-OpenCV停留在OpenCV2上,而OpenCV2在一些现代系统上是不可用的。只要安装了OpenCV,它应该可以在MacOS和Linux上运行。
这就是:https://github.com/khasinski/framegrabber
在您的情况下,它将是: