ropencv
ropencv copied to clipboard
ffi ruby wrapper for opencv
Ruby Bindings for OpenCV
ROpenCV is a ffi ruby binding for the Open Source Computer Vision Library OpenCV.
Unlike other OpenCV ruby binding projects like ruby-opencv or opencv-ffi this binding is automatically generated by parsing the OpenCV C++ headers having the following advantages:
- automatically up-to-date
- full API coverage
- closely match the original C++ interface
State:
- All marked methods in the OpenCV C++ header are wrapped
- Memory management needs review
- Currently, no support for multi threading or GPU
License
ROpenCV is released under a BSD license, it is free for both academic and commercial use.
Compatibility Notes
ROpenCV should run on any platform which supports Ruby and OpenCV 2.4.4 or higher. It has been successfully tested on the following platforms.
- Linux with Ruby 1.9.3 and OpenCV 2.4.4 - 2.4.6
- Mac OSX with Ruby 1.9.3 and OpenCV 2.4.4 - 2.4.6
Installation
After running the following commands, ROpenCV and all the mandatory dependencies should be installed:
Ubuntu / Debian
- Install OpenCV 2.4.4 or newer.
- sudo apt-get install ruby rubygems cmake g++
- sudo gem install ropencv
Usage
require 'ropencv'
include OpenCV
m = cv::Mat.new(3,3,cv::CV_64FC1)
Example
require 'ropencv'
include OpenCV
mat = cv::imread("logo.png")
detector = cv::FeatureDetector::create("SURF")
keypoints = Std::Vector.new(cv::KeyPoint)
detector.detect(mat,keypoints)
puts "found #{keypoints.size} keypoints"
puts "first keypoint is at #{keypoints[0].pt.x}/#{keypoints[0].pt.y}"
cv::draw_keypoints(mat,keypoints,mat)
cv::imshow("key_points",mat)
cv::wait_key(-1)