Best way to count number of “White Blobs” in a Thr

2019-07-28 01:50发布

I need to count the number of white blobs in a Thresholded image. I'm counting small squares on a marker. But due to the poor image quality of the webcam, these squares don't appear as squares. This is why I decided to use Blob detection. This is for an Augmented reality application. Is my decision right?

Camera placed near the marker

enter image description here

Camera placed far from the marker

enter image description here

3条回答
做个烂人
2楼-- · 2019-07-28 02:11

How about using the cvBlobsLib. This detects connected regions which you should easily be able to count, and obtain further information such as their size.

查看更多
混吃等死
3楼-- · 2019-07-28 02:13

What about the cvFindContours function? It's been a while since I use it but I think you can then iterate in the CvSeq of found contours and work with them the way you like.

I know it's an old thread but maybe it can help you!

查看更多
对你真心纯属浪费
4楼-- · 2019-07-28 02:23

I have used findContours function. Here is the piece of code:

    std::vector<std::vector<cv::Point> > contours;      

    cv::findContours(m, contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);
    for( unsigned int i = 0; i < contours.size(); i++ )
    { 
        if( contours[i].size() < 3  ) // at least a triangular area?
            continue;

        double area = cv::contourArea(Mat(contours[i]) );
        if ( (area > min * min) && ( area < max * max ) )
        {
           //... use or count blob
查看更多
登录 后发表回答