Windows7にruby-opencv環境のセッティング

色々調べたりトライしたりした結果、Windows7では32bit/64bitによらず下記の環境が一番良さそうなことがわかった。

  • OpenCV-2.4.11
  • Microsoft VisualStudio Express 10
  • ActiveScriptRuby 2.2(32bit版)

cygwin ruby でビルドする方法もあるが、パッチを当てる必要があるし、時間がかかるし、割と面倒。

mingw ruby は環境によってはうまくopencvを見つけることができず、ビルドに失敗することがある。

mswin版rubyだが、Windows7が64bitであっても64bit版rubyだと、ruby用バイナリをうまくビルドできない。(ビルドしようとして、ポインタのサイズが違うとかでエラーが出た。適当に修正してどんな問題が出るか予想できなかったので俺はあきらめた)

また、2015年現在公開されている ActiveScriptRuby は VS10 でビルドされている為、最新版 VisualStudio 2013 でなく、VS10(2010)を使用する必要がある。


以下、ruby-opencv環境構築手順。

1. http://sourceforge.net/projects/opencvlibrary/ から opencv-2.4.11.exe をDL。
2. 上記exeを c:/opencv/ に解凍。exeサイズは350MBくらいだが、HD空きは8GBくらい必要。
3. システム環境変数 PATH に c:\opencv\build\x86\vc10\bin を追加。
4. インクルード/ライブラリ検索パスとして、c:/opencv/build/include等を追加。(※1)
5. http://www.microsoft.com/ja-jp/download/details.aspx?id=23691 とかから VisualStudio Express 10 をインストール
6. http://www.artonx.org/data/asr/ から Ruby-2.2 (32bit版)の msi をダウンロードして、c:/Ruby にインストール、 PATH にc:\Ruby\bin を追加。
7. "c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\vsvars32.bat" を実行し、VisualStudio 2010 用の環境変数を設定。
8. gemで ruby-opencv をインストールする: gem install ruby-opencv --platform ruby -- --with-opencv-include=C:/opencv/build/include/ --with-opencv-lib=C:/opencv/build/x86/vc10/lib/
9. 下記の様な簡単なスクリプトを書いて、引数指定したJpegが表示されるのを確認。

require 'opencv'
include OpenCV
GUI::Window.new("Hello").show CvMat.load(ARGV.shift)
GUI::wait_key

(※1) OpenCV関連のビルド時にINCLUDE / LIBの検索パス設定は必要だが、ruby-opencv しか使わないなら、コマンドラインで一時的に設定すればおっけー。

set LIB=c:\opencv\build\x86\vc10\lib
set INCLUDE=c:\opencv\build\include