多大なる苦労の末、ようやく動きました。
動かすまでの手順をものすごく大雑把に書けば、以下のようになります。
- MonoやOpenCVをインストール
- OpenCvSharpExtern.dllはWindowsバイナリなので、LinuxバイナリであるlibOpenCvSharpExtern.soをつくる
- libcv.so.2.0.0 等のOpenCVのライブラリファイルを /usr/local/lib 辺りからコピーしてきて、libcv110.so のように名前変更
- libOpenCvSharpExtern.so や libcv110.so 等のライブラリを全て実行ファイルと同じディレクトリに置いた状態で、起動
C#については、Monoと.NET Frameworkの間でバイナリ互換があるのでほぼまったく問題ありません。問題はC++で書かれた部分です。だいぶ減らしたとはいえ0にするのは難しく、そこだけはLinuxで動かすときにそれ専用にコンパイルしなければなりません。
MLとcvblobについてはC++で書かれておりDllImportは厳しいのでやむを得ませんが、コア部分については純粋にC#で実装したいところです。
また、Linux版は配布しようにも、Linuxって各ディストリビューション間でどこまでバイナリ互換があるのかよくわかりませんし、やはり使う人が自分でコンパイルして下さい、という方向になりそうです。
Monoプログラミング .NET/C#とMono for AndroidによるAndroidアプリケーション開発
- 作者: Wallace B. McClure,Nathan Blevins,John J. Croft IV,Jonathan Dick,Chris Hardy,長尾高弘
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2012/11/22
- メディア: 大型本
- クリック: 14回
- この商品を含むブログを見る