У меня есть Qvector, содержащий пиксельные координаты изображения. Основная цель состоит в том, чтобы сгруппировать эти пиксели относительно их расстояния друг от друга и получить прямоугольник из этих групп пикселей. Каждый пиксель в векторе не находится близко друг к другу, и именно поэтому я хотел бы их сгруппировать.
Я использую openCv и Qt. Я хотел бы избежать blobDetector из OpenCV, который довольно медленный, и сделать это самостоятельно, если это возможно.
У кого-нибудь есть идея, как с этим справиться?
ИЗМЕНИТЬ:
Допустим, белые точки находятся близко друг к другу в пикселях. Основная цель состоит в том, чтобы обнаружить, что эти пиксели находятся близко друг к другу, и иметь возможность получить прямоугольник из этих пикселей. Это возможно ?
EDIT2:
После получения кластеров я попытался получить ограничивающие прямоугольники вокруг этих кластеров с помощью следующего кода. Возможно, я неправильно использую эту функцию.
cv::partition(cvCoordsTable, testVector, Dist(eqludianThreshold));
std::vector<cv::Rect> rectTable;
for(int in = 0; in < testVector.size(); in++)
{
rectTable.push_back(cv::boundingRect(cvCoordsTable.at(in)));
}
Спасибо за помощь