Versioned fork of the OpenCV gem for Ruby
C++ C Ruby
Switch branches/tags
Nothing to show
Pull request Compare This branch is 6 commits ahead of bantic:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



OpenCV Sourceforge Project

Ruby/OpenCV Author's Web Page


OpenCV Ruby Wrapper


  • First release rubygems, Some OpenCV function wrapped.

  • Use of Carbon windows on Mac OS X is a little buggy, especially when called from the command line.

  • Mouse interaction often causes segfaults on my Mac OS X (ruby 1.8.7).

  • Sadly, use of X Windows as an alternative on Mac OS X is similarly buggy.




  • You need to install OpenCV and libffcall. You can install these packages and the required dependencies using the package manager as follows:

$ sudo aptitude install libcv-dev libcvaux-dev libhighgui-dev libffcall1-dev
  • You also need to install 'rubygems' and 'echoe' if you don't have them installed already:

$ sudo gem install rubygems echoe
  • Then you need to download and install this gem:

$ git clone git://
$ rake manifest
$ rake gem
$ sudo gem install pkg/opencv-*.gem
  • Check your work:

$ irb
irb> require 'rubygems'
=> true
irb> require 'opencv'
=> true


  • OpenCV is a requirement. Unfortunately there's a bug in the code that affects our ability to use Carbon windows, so we can't install from a port. We'll have to install from source.

  • First, these are the dependencies we'll need:

  • atk

  • pango

  • jpeg

  • tiff

  • libpng

  • pkgconfig

  • gtk2

  • glib2

  • ffcall

  • Use ports to install them:

$ sudo port install atk 
$ sudo port install glib2 
$ sudo port install pango
$ sudo port install jpeg
$ sudo port install tiff
$ sudo port install libpng
$ sudo port install pkgconfig
$ sudo port install gtk2
$ sudo port install ffcall
  • Ports is going to install them in /opt/local, which is where this gem will go looking for ffcall, so that will work well for us.

  • Next, download version 1.1pre1 of the opencv-linux package here:

  • Navigate to where you downloaded it and:

tar xzvf opencv-1.1pre1.tar.gz
cd opencv-1.1.0/
  • Important: Before we configure and build, we need to fix a small bug in the code. Open up the file otherlibs/highgui/window_carbon.cpp in a text editor and make this change to line 645:

return NULL;

should be changed to

return result;

(This bug is tracked in sourceforge here:

  • Now save the file, and we can run configure:

./configure --with-carbon=yes CPPFLAGS="-I/opt/local/include -I/usr/include/malloc" LDFLAGS=-L/opt/local/lib

After configure runs, it will print out a display showing which libraries are in use. Double-check that the windowing system is using “Carbon/Mac OS X” and not gtk.

  • Finish installing:

sudo make install

The last of the output from the install command will probably complain about not being able to find ldconfig. That's fine. You're on a Mac; you don't need ldconfig (

  • Now install the gem

sudo gem install bantic-ruby-opencv
  • Check your work:

$ irb
irb> require 'rubygems'
=> true
irb> require 'opencv'
=> true


# Show image via GUI Window.

require "rubygems"
require "opencv"

image = OpenCV::IplImage.load("sample.jpg")
window ="preview")

# other sample code, see examples/*.rb

Documentation is available here:


The BSD Liscense

see LICENSE.txt