Как объединить сегменты концентрических кругов, являющиеся частью одного кругаC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как объединить сегменты концентрических кругов, являющиеся частью одного круга

Сообщение Anonymous »

Я обрабатываю изображения, содержащие как полные круги, так и сегменты кругов. Моя цель — объединить только те компоненты, которые являются частью одного круга, но сами не являются полными кругами.
В настоящее время я использую следующий метод для извлечения связанных точек из входного изображения. :

Код: Выделить всё

std::vector GetConnectedPoints(cv::Mat& binaryImage) {
cv::Mat labels, stats, centroids;
int numComponents = cv::connectedComponentsWithStats(binaryImage, labels, stats, centroids);

std::vector components(numComponents);

for (int label = 1; label < stats.rows; ++label) {
int left = stats.at(label, cv::CC_STAT_LEFT);
int top = stats.at(label, cv::CC_STAT_TOP);
int width = stats.at(label, cv::CC_STAT_WIDTH);
int height = stats.at(label, cv::CC_STAT_HEIGHT);

for (int y = top; y < top + height; ++y) {
for (int x = left; x < left + width; ++x) {
if (labels.at(y, x) == label) {
components[label].emplace_back(x, y);
}
}
}
}
return components;
}
Компоненты представляют собой концентрические круги, включающие полные круги и сегменты кругов. Вот пример изображения, показывающего точки подключения, где разные цвета обозначают разные компоненты:
Изображение
Исходное изображение:
Изображение
Двоичное изображение:
Изображение
Как объединить только те компоненты, которые являются сегментами одного круга? Мы будем очень признательны за любые рекомендации или коды по решению этой проблемы.
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/786 ... ame-circle
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»