An open API service indexing awesome lists of open source software.

https://github.com/rubyonworld/ropencv

ROpenCV is a ffi ruby binding for the Open Source Computer Vision Library OpenCV.
https://github.com/rubyonworld/ropencv

open rails ropencv ruby source

Last synced: 2 months ago
JSON representation

ROpenCV is a ffi ruby binding for the Open Source Computer Vision Library OpenCV.

Awesome Lists containing this project

README

          

# Ruby Bindings for OpenCV
ROpenCV is a ffi ruby binding for the Open Source Computer Vision Library
[OpenCV](http://opencv.org/opencv-java-api.html).

Unlike other OpenCV ruby binding projects like
[ruby-opencv](https://github.com/ruby-opencv/ruby-opencv/) or
[opencv-ffi](https://github.com/amarburg/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.](http://opencv.org/downloads.html)
* 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)