OpenCV, osxでopencv(とruby)

ちょいと駆け足でインストールからrubyで実行まで。

XQuartzのインストール
http://xquartz.macosforge.org/

numpyが必要っぽかったのでインストール

1
2
3
> pybrew install 3.2.3 (or 2.7.3)
> pybrew switch 3.2.3
> pip install numpy

homebrewでopencvインストール

1
> brew install opencv

rubyから利用する準備

1
2
3
4
5
> mkdir test
> vim Gemfile
gem 'opencv', :git => 'git://github.com/ruby-opencv/ruby-opencv.git'
 
> bundle install --path vendor/bundle
1
2
3
4
5
6
7
8
9
10
11
12
#coding: utf-8
require 'opencv'
 
image = OpenCV::IplImage.load(ARGV[0])
 
detector = OpenCV::CvHaarClassifierCascade::load('/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt2.xml')
 
detector.detect_objects(image) do |rect|
  image.rectangle!(rect.top_left, rect.bottom_right, color: OpenCV::CvColor::Blue)
end
 
image.save_image('output.jpg')

顔認識テスト

1
bundle exec ruby app.rb test.jpg

顔傾けてる写真だとあまり認識してくれないみたい。
あとでProcessingとかiOSとかでも試してみよう。