2014年7月25日金曜日

OpenCVSharpでのIplImage -> Mat 変換

OpenCVでは内部の画像フォーマットとして、従来はIplImageが主流でしたが、現在はMat形式を利用する流れになっています。で、当然、IplImageとMatへの変換についてはOpenCVSharpでも対応しており、
  • Mat mat = new Mat(srcImage);
というように、matのインスタンス生成時に IplImageを渡せば自動変換してくれます。

OpenCVSharpExtern.dllの設定に注意
Matクラスを利用するには、OpenCvSharp.CPlusPlus のパッケージを利用することになるのですが、このクラスは、OpenCVSharpExtern.dll を利用しているもよう。このdllは、参照設定では登録できないので、プロジェクトディレクトリに置かなければいけません。さらに、このファイルはプロパティにて
  • 出力ディレクトリにコピー:新しい場合はコピーする(または、常にコピーする)
という設定をしなければいけません。この設定を忘れると、上述のような変換の記述を実行すると、
  • TypeInitializationException が発生しました
というエラーが起きてしまいます。実はこのことに気づかず、Matへの変換ができなくて、何でかなーとかなり悩んでました。OpenCVのライブラリが動かなければすぐに気づいたのですが、通常の処理で問題なく実行できてましたので、まさか、初歩的な設定を忘れていたとは、、、

これで、ラボでも本格的にMatベースの記述に移行することができそうです。



0 件のコメント:

コメントを投稿