2014-05-06 30 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 } 
相關問題