你能用ruby- openv实时摄像头吗?



我正在考虑构建一个快速和肮脏的脚本来帮助一个朋友。它需要接受摄像头的输入,并对其进行非常简单的计算(考虑像素随时间的增量亮度,计算相对简单)。

我目前倾向于c++和opencv,但我想知道,因为这是一个计算成本低廉的任务,(当然相对而言)如果有一种方法可以简单地使用ruby-opencv或其他一些技术来保持它在脚本语言中。

我还没能找到任何方法导入实时网络摄像头图像到一个ruby脚本,因为我一直在寻找,但我很高兴有我的搜索技能被证明是不足的美妙的SO社区!

我看过的地方:

hornetseye

c++脚本(我倾向于)

使用ffi

在总结

;是否有一种方法导入实时网络摄像头图像到一个ruby脚本上执行简单的计算?(我在考虑与opencv,但没有绑定到任何特定的想法。

使用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

OpenCV有Python绑定,可以在底层调用本地c++代码。他们也有很多关于如何使用Python API的教程。打开视频提要的一个基本示例可以在这里找到,更长的教程列表可以在这里找到。如果你对使用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()

使用hornetseye-v4l2和hornetseye-xorg你可以捕捉和显示像这样的相机图像

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

相关内容

  • 没有找到相关文章

最新更新