Note

This fork was created solely to release an up-to-date version of ruby-opencv on rubygems. It can be installed as a gem via

$ gem install afeld-opencv

or added in a Gemfile with

gem 'afeld-opencv', '~> 0.8'

OpenCV

The initial Open Computer Vision library was originally developed by Intel Corporation. Recent development has been headed by Willow Garage, Inc.

DESCRIPTION:

OpenCV wrapper for Ruby

FEATURES/PROBLEMS:

  • Some OpenCV functions are wrapped.

  • Ruby 1.8.7, 1.9.3 and OpenCV 2.4.0 are supported.

DEPENDENCIES:

INSTALLATION:

Install Ruby/OpenCV manually

Unix/Linux/Mac

$ git clone git://github.com/ruby-opencv/ruby-opencv.git
$ cd ruby-opencv
$ git checkout master # for OpenCV 2.4 or later. To use OpenCV 2.3, type "git checkout OpenCV_2.3" instead
$ ruby extconf.rb --with-opencv-dir=/path/to/opencvdir
$ make
$ make install

Windows (mswin32)

Use nmake instead of make.

$ git clone git://github.com/ruby-opencv/ruby-opencv.git
$ cd ruby-opencv
$ git checkout master # for OpenCV 2.4 or later. To use OpenCV 2.3, type "git checkout OpenCV_2.3" instead
$ ruby extconf.rb --with-opencv-dir=C:\path\to\opencvdir\install  # for your own built OpenCV library
$ nmake
$ nmake install

To use pre-built OpenCV libraries, set the following option to extconf.rb.

$ ruby extconf.rb --with-opencv-include=C:\path\to\opencvdir\build\include --with-opencv-lib=C:\path\to\opencvdir\build\x86\vc10\lib

Windows (mingw32)

Type the following commands on the MSYS console.

$ git clone git://github.com/ruby-opencv/ruby-opencv.git
$ cd ruby-opencv
$ git checkout master # for OpenCV 2.4 or later. To use OpenCV 2.3, type "git checkout OpenCV_2.3" instead
$ ruby extconf.rb --with-opencv-dir=/C/path/to/opencvdir/install  # for your own built OpenCV library
$ make
$ make install

To use pre-built OpenCV libraries, set the following option to extconf.rb.

$ ruby extconf.rb --with-opencv-include=/c/path/to/opencvdir/build/include --with-opencv-lib=/c/path/to/opencvdir/build/x86/mingw/lib

NOTE:

/path/to/opencvdir is the path you installs OpenCV library (default: /usr/local).

For example, if you install OpenCV library to /opt/local/ like:

$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/opt/local/ ./OpenCV-2.4.0
$ make
$ make install

Install Ruby/OpenCV with the following command:

$ ruby extconf.rb --with-opencv-dir=/opt/local
$ make
$ make install

Create Ruby/OpenCV Gem

You can also install this library creating a gem like:

$ git clone git://github.com/ruby-opencv/ruby-opencv.git
$ cd ruby-opencv
$ git checkout master # for OpenCV 2.4 or later. To use OpenCV 2.3, type "git checkout OpenCV_2.3" instead
$ bundle install
$ rake gem
$ gem install pkg/opencv-*.gem -- --with-opencv-dir=/path/to/opencvdir

To add ruby-opencv in your Gemfile:

$ echo -e "\n"'gem "opencv", :git => "https://github.com/ruby-opencv/ruby-opencv"' >> Gemfile
$ bundle config build.opencv --with-opencv-dir=/path/to/opencvdir
$ bundle install  # or bundle update

SYNOPSIS:

Show Image using GUI Component

#!/usr/bin/env ruby
require "opencv"

image = OpenCV::IplImage.load("sample.jpg")
window = OpenCV::GUI::Window.new("preview")
window.show(image)
OpenCV::GUI::wait_key

Face Detection

Here is a sample face detection program that doesn’t rely on the GUI components. In order for this to work you must copy the OpenCV haarcascades data into a subfolder called data.

#!/usr/bin/env ruby
require "opencv"

if ARGV.length < 2
  puts "Usage: your_app_name source dest"
  exit
end

data = "./data/haarcascades/haarcascade_frontalface_alt.xml"
detector = OpenCV::CvHaarClassifierCascade::load(data)
image = OpenCV::IplImage.load(ARGV[0])
detector.detect_objects(image).each do |region|
  color = OpenCV::CvColor::Blue
  image.rectangle! region.top_left, region.bottom_right, :color => color
end
image.save_image(ARGV[1])

For more samples, see examples/*.rb

LICENSE:

The BSD Liscense

see LICENSE.txt