2013/10/18

C#で画像処理-AForge.NETの導入-

Lv_ZEROです。

C#で画像処理と言えば"OpenCV Sharp"が有名ですが、個人的には導入が面倒だったり、うまくいかなかったりと導入が大変でした。そこで、導入が簡単で、尚且つ、高性能な画像処理系のオープンソースはないかと探していたところ"AForge.NET Framework"というのを見つけました。

"AForge.NET"はコンピュータビジョンと人工知能の分野で開発や研究のために開発されたC#のためのフレームワークだそうです。主な機能は以下の内容のようです。

  • 画像処理(Kinectも対応しているようだ)
  • ニューラルネットワーク
  • 遺伝的アルゴリズム
  • 機械学習
  • ファジィ論理
  • Lego Mindstormなどのためのライブラリ

機能だけ見るとロボット工学において必要なものばかりです。しかしながら、少ししか使用していないので何が出来て、どれくらいの性能なのか、まだわかりません。情報も少なく、英語のドキュメントが唯一の手がかりな感じですが、少しずつ使い方を覚えていきたいと思います。

"AForge.NET"のホームページは以下のURLから行けます。(もちろん英語です)
http://www.aforgenet.com/

それでは、"AForge.NET"の導入方法を紹介します。

1.公式HPから"AForge.NET Framework"をダウンロードします。

2.ダウンロードしたファイルを解凍し、「Release」フォルダの中にあるdllから必要なものだけプロジェクトフォルダの中にコピーします(もちろんコピーしなくてもできます)。

3."Visual Studio"の「プロジェクト」→「参照の追加」→「参照」をクリックして、必要なdllを選択し、プロジェクトに追加できたら導入完了です。

超簡単でしたね。これでライブラリの使い方さえわかれば直ぐに開発が始められます。

"AForge.NET"による画像処理のイメージフォーマットは"Bitmap"です。しかしながら、一丸に"Bitmap"といえど、8bpp,16bpp,24bpp,32bppなどといったようにフォーマットが異なります。
"AForge.NET"ではグレースケールなら8bpp、RGBなら24bppとフォーマットを定めているようです。そこで適切なフォーマットに変換してくれるメソッドがあります。
// 画像の読み込み
System.Drawing.Bitmap image = (Bitmap) Bitmap.FromFile( fileName );
// 適切なフォーマットに変換
AForge.Imaging.Image.FormatImage( ref image );
あとは適切なフォーマットになったBitmapを使って色々処理をしていく形になります。

今日はここら辺で、次回はUSBカメラから画像を取り込む方法を紹介したいと思います。

0 件のコメント:

コメントを投稿