Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Versioned fork of the OpenCV gem for Ruby
C++ C Ruby
Branch: master
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.
examples
ext
images
lib
setup
test
.gitignore
CHANGELOG
License.txt
README.rdoc
Rakefile
metadata

README.rdoc

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

Something went wrong with that request. Please try again.