我计划以C++用户的身份开始尝试blobs,在OpenCV的cv::Mat上有一些经验。
现在的问题是,如果有的话,我应该使用哪个 blob 库?
到目前为止,我已经看到了这些替代方案:
- cvBlobs(在谷歌代码上)——这实际上是一个c库,与IplImage一起工作,所以它需要认真适应c++。
- CvBlobsLib(在willowgarage opencv网页上) - 看起来像一个C ++库,但有相当糟糕的文档,有很多东西无法解释,几乎没有任何代码示例。
- 我在OpenCV 2.4.3库中看到了cv::findContours,cv::moments和cv::d rawContours。
作为专家,您有什么建议?我的紧迫问题是:新的OpenCV不会涵盖谷歌代码上的cvBlobs吗?
这是关于这个主题的后续问题的链接,我问的是SimpleBlobDetector。您可能会感兴趣。
你应该在OpenCV 2.4中使用SimpleBlobDetector
类。 你几乎创建了一个类型为 SimpleBlobDetector
的对象,然后调用 detect(cv::Mat input, vector<cv::KeyPoint> keypoints, cv::Mat mask)
函数,其中 cv::Mat 图像作为输入,一个空向量作为关键点,另一个 cv::Mat 作为图像特定区域的可选掩码来查找关键点。
请注意,cv::Mat 对象已经接管了 OpenCV 早期版本中所有以前单独的图像和矩阵类的图像和矩阵存储职责。
你应该看看新的opencvblobslib。它具有强大的功能,例如多核支持。