2014-05-06 33 views
3

我想构建一个快速和肮脏的脚本来帮助朋友出去。它将需要摄像头输入并对其执行非常简单的计算(考虑像素随着时间的增加亮度,相对计算简单)。你可以实时使用ruby-opencv摄像头吗?

我目前倾向于C++ like soopencv一起,但我不知道,因为它是这样一种计算开销的任务,(相对而言当然),如果有一种方法,简单地使用ruby-opencv或其他一些技术来保持它在一种脚本语言。

我一直都没有找到任何方法将实时webcamera图像导入到ruby脚本中,但我会非常乐意让我的搜索技能被美妙的SO社区证明不足。

地方到目前为止,我已经看了:

hornetseye

c++ script (what I'm leaning towards)

using an ffi

在摘要;有没有办法将实时webcamera图像导入到ruby脚本中,以对它们执行简单的计算? (我正在考虑使用opencv,但是并没有与任何特定的想法联系起来

+0

如果你不承诺红宝石,OpenCV中确实有Python绑定。 – Aurelius

+0

@Aurelius我没有犯下红宝石,python听起来不错,我可以用它实时访问摄像头吗?你能告诉我任何文档/ blog_posts /无论怎么做?如果是这样,作为答案张贴,这正是我正在寻找,谢谢! –

+0

我也一直struggelin, ,但这一个工程http://stackoverflow.com/questions/22205049/ruby-on-rails-capture-webcam-video-and-audio/22236878#22236878 – cartasu

回答

1

OpenCV有Python绑定,它将在后台调用本机C++代码,并且还有许多关于如何使用Python API的教程。打开一个视频输入信号可以找到here,和教程的长名单here我强烈建议找过他们,如果你有兴趣做很多工作,OpenCV的

第一个教程的简要总结:。

import numpy as np 
import cv2 

cap = cv2.VideoCapture(0) 

while(True): 
    # Capture frame-by-frame 
    ret, frame = cap.read() 

    # Do image processing here, using frame 

    # Display the resulting frame 
    cv2.imshow('frame',frame) 
    if cv2.waitKey(1) & 0xFF == ord('q'): 
     break 

# When everything done, release the capture 
cap.release() 
cv2.destroyAllWindows() 
3

使用ruby-opencv您可以捕捉并显示相机时代图片如下

#!/usr/bin/env ruby 
require 'opencv' 
include OpenCV 
FPS = 30 
input = CvCapture.open 
win = GUI::Window.new 'video' 
loop do 
    img = input.query 
    win.show img 
    key = GUI.wait_key 1000/FPS 
    break if key and key.chr == "\e" 
end 
1

使用hornetseye-v4l2hornetseye-xorg你可以捕捉和显示相机相似图片

#!/usr/bin/env ruby 
require 'hornetseye_v4l2' 
require 'hornetseye_xorg' 
include Hornetseye 
input = V4L2Input.new 
X11Display.show { input.read } 
相关问题