Капли с OpenCV. Какая библиотека лучше?

Я планирую начать экспериментировать с BLOB-объектами как пользователь C ++, имея некоторый опыт работы с cv :: Mat из OpenCV.

Теперь вопрос в том, какую библиотеку BLOB-объектов мне следует использовать, если она вообще используется?

Я видел эти альтернативы до сих пор:

  1. cvBlobs (в коде Google) — это действительно библиотека c, работающая с IplImage, поэтому она нуждается в серьезной адаптации к c ++.
  2. CvBlobsLib (на открытой странице willowgarage opencv) — это похоже на библиотеку c ++, но имеет довольно плохие документы с множеством вещей, оставшихся необъяснимыми и едва ли примером кода.
  3. Я видел cv :: findContours, cv :: moment и cv :: drawContours в библиотеке OpenCV 2.4.3.

Что вы предлагаете в качестве эксперта? Моя неотложная проблема: что новый OpenCV не покроет cvBlobs в коде Google?


Вот ссылка на дополнительный вопрос по этому вопросу, где я спрашиваю о SimpleBlobDetector. Вам может быть интересно.

6

Решение

Вы должны использовать SimpleBlobDetector учебный класс в OpenCV 2.4. Вы в значительной степени создаете объект типа SimpleBlobDetector а затем позвоните detect(cv::Mat input, vector<cv::KeyPoint> keypoints, cv::Mat mask) функция с изображением cv :: Mat в качестве входных данных, пустым вектором для ключевых точек и другой cv :: Mat в качестве необязательной маски для определенной области изображения, в которой нужно искать ключевые точки.

Обратите внимание, что объект cv :: Mat взял на себя обязанности хранения изображений и матриц для всех ранее отдельных классов изображений и матриц в более ранних выпусках OpenCV.

5

Другие решения

Вы должны взглянуть на новый opencvblobslib. Он имеет отличные функции, такие как многоядерная поддержка.

2