LoginSignup
2
2

More than 5 years have passed since last update.

mruby-cliでOpenCVに依存したmruby-webcamを使ってマルチプラットフォームでワンバイナリを作る

Last updated at Posted at 2016-02-14

背景

外部のライブラリに依存するmrbgemを使ってもmruby-cliでワンバイナリを作成できるようにしたにて自作のmrbgemモジュールのmruby-webcamをmruby-cliに対応させた。

やり方

git clone 
mruby-cli --setup webcamapp
cd webcamapp
cp ../mruby-webcam/docker/* .

アプリ本体

webcamapp.rb
def __main__(argv)
  if argv[1] == "version"
    puts "v#{App1::VERSION}"
  else
    puts "Hello World"
    cam = Webcam.new

      cam.capture {|img|
          # img : JPEG format
          puts img.length
          File.open("#{Time.now.to_s.gsub!(' ','').gsub!(':','')}.jpg","wb") {
        |f| f.write img
      }
    }

  # SPC : capture
  # ESC : exit
  cam.start
  end
end

ビルド

docker-compose run compile

初代MacBook Pro Retinaで3時間程度待つと、mruby/build配下にWindows、OSX、Linuxのワンバイナリが作成される。

あとがき

mruby-webcamモジュール自体は現状、Webカメラの映像を表示する程度だが、
OpenCVをmruby-cliに付属のコンパイラでクロスコンパイルできているので、
色々頑張ると使えるかもしれません。

docker-machineでcpu数増やすともう少しビルド時間を短縮できるかも。

関連記事

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2