Permalink
Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
121 lines (95 sloc) 3.8 KB

opencv

OpenCV Sourceforge Project sourceforge.net/projects/opencvlibrary/

Ruby/OpenCV Author's Web Page blueruby.mydns.jp/opencv

DESCRIPTION:

OpenCV Ruby Wrapper

FEATURES/PROBLEMS:

  • 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.

REQUIREMENTS:

INSTALLATION INSTRUCTIONS

GNU/Linux

  • 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://github.com/wedesoft/ruby-opencv.git
$ rake manifest
$ rake gem
$ sudo gem install pkg/opencv-*.gem
  • Check your work:

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

MacOS

  • 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: sourceforge.net/project/showfiles.php?group_id=22870

  • 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: sourceforge.net/tracker/index.php?func=detail&aid=2668857&group_id=22870&atid=376677)

  • 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:

make
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 (macosx.com/forums/mac-os-x-system-mac-software/5200-ldconfig.html).

  • Now install the gem

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

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

SYNOPSIS:

# Show image via GUI Window.

require "rubygems"
require "opencv"

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

# other sample code, see examples/*.rb

Documentation is available here: doc.blueruby.mydns.jp/opencv/

LICENSE:

The BSD Liscense

see LICENSE.txt