cvblobをラップ

少し前に要望が有ったので、組み込んでみました。まだ進捗は半分程度といったところですが、サンプルは動きました。

ソースはこのような感じです。ほぼcvblob付属のtest.cppの直訳です。

using (IplImage img = new IplImage("shapes.png", LoadMode.Color))
using (IplImage chB = new IplImage(img.Size, BitDepth.U8, 1))
using (IplImage labelImg = new IplImage(img.Size, BitDepth.F32, 1))
{
    Cv.Threshold(img, img, 100, 200, ThresholdType.Binary);
    Cv.Split(img, chB, null, null, null);
    using (CvBlobs blobs = new CvBlobs())
    {
        uint result = CvBlobLib.Label(chB, labelImg, blobs);
        CvBlobLib.RenderBlobs(labelImg, blobs, img, img);
    }
    using (CvWindow window = new CvWindow("cvblob test", img))
    {
        Cv.WaitKey(0);
    }
}


blob、すなわちラべリングを行うライブラリはいくつかありますが、今回利用させていただいたのは以下のものです。設計がコンパクトで、ラップしやすかったです。
cvblob : http://code.google.com/p/cvblob/

もうひとつ、こちらの方がおそらく知名度はあります。
cvBlobsLib : http://opencv.willowgarage.com/wiki/cvBlobsLib


OpenCVで始める簡単動画プログラミング

OpenCVで始める簡単動画プログラミング