I plan to start experimenting with blobs as a C++ user, with some experience at cv::Mat's from the OpenCV.
Now the question is, which blobs library should I use if at all?
I have seen these alternatives so far:
- cvBlobs (on google code) -- that is a c library really, working with IplImage so it needs serious adaptation to c++.
- CvBlobsLib (on willowgarage opencv webpage) -- that looks like a c++ library but has quite bad docs with plenty of stuff left unexplained and barely any code example.
- I have seen cv::findContours, cv::moments and cv::drawContours in the OpenCV 2.4.3 library.
What do you suggest as an expert? My pressing issue: what will the new OpenCV not cover of cvBlobs on google code?
Here is the link for the follow-up question on this subject, where I ask about SimpleBlobDetector. You might be interested.
You should take a look at the new opencvblobslib. It has great features like multi core support.
You should use the
SimpleBlobDetector
class in OpenCV 2.4. You pretty much create an object of typeSimpleBlobDetector
and then call thedetect(cv::Mat input, vector<cv::KeyPoint> keypoints, cv::Mat mask)
function with a cv::Mat image as input, an empty vector for keypoints, and another cv::Mat as an optional mask for a specific area of the image to look for keypoints in.Note that the cv::Mat object has taken over image and matrix storage duty for all of the formerly separate image and matrix classes in the earlier releases of OpenCV.