OpenCvSharp を用いて特定の色を検出するサンプルコードです。

元ネタはこれ【OpenCV】色領域の抽出

 やってることは元ネタのサイトと一緒ですが、 C++ API を用いて(そこそこ)エレガントに書き直しました。LUT を生成する部分で OpenCvSharp Wiki に TypeSpecificMat (faster) と書いてある方法でピクセルにアクセスしているので、 unsafe じゃないやり方では最も高速なんじゃないかと思います。それから、Mat ではなく IplImage を使いたい人(C++ API を使わない人)向けに、元ネタのコードを OpenCvSharp で使えるようそのまま書き換えたものも載せておきました。

 以下は画像から肌色領域を抽出するコードです。そのまま動かすには、実行ファイルと同じフォルダに lena.jpg という名前のイメージファイルが存在する必要があります。

C++ API を使った方

C++ API を使わない方

スポンサーリンク