В OpenCV 3.0 есть функция, называемая connectedComponent.Подключенная маркировка компонентов
Я знаю, что он принимает как входное двоичное изображение и возвращает метки и количество подключенных компонентов, но какой алгоритм используется внутри?
В OpenCV 3.0 есть функция, называемая connectedComponent.Подключенная маркировка компонентов
Я знаю, что он принимает как входное двоичное изображение и возвращает метки и количество подключенных компонентов, но какой алгоритм используется внутри?
OpenCV является открытым исходным кодом. Вы можете посмотреть documentation и source code.
Вы можете выбрать 2 algorithms выполнить connected component lablelling:
CCL_WU: на основе
CCL_GRANA: на основе
"Optimized Block-based Connected Components Labeling with Decision Trees", Costantino Grana et al
Это работает только для 8-связных компонент.
по умолчанию в OpenCV> = 3,2 (CCL_DEFAULT
) использует алгоритм В для 4-подключения, а также алгоритм грана для 8 соединений.
В OpenCV 3.0.0 используется алгоритм Ву как для 4 и 8 связи, в OpenCV> = 3,2 вы можете выбрать один из 3 вариантов, в соответствии с полями connectivity
и ccltype
:
\ connectivity 4 | 8
\ |
type \ |
|
CCL_DEFAULT Wu | Grana
CCL_WU Wu | Wu
CCL_GRANA Wu | Grana
благодарю вас за ответ. Вам нужно будет иметь доступную документацию, которая говорит об этом алгоритме? Я пробовал искать в Интернете, но ничего не нашел – user7209199
Вам нужно будет поискать лучше. Я отредактировал ответ со ссылками на газеты – Miki
еще один глупый вопрос: имея обе стратегии, как я узнаю, что было использовано? Мне очень жаль твоей проблемы, но я новичок в этой области. – user7209199
Вы можете прочитать о связанных алгоритмах маркировки компонентов в многочисленных источниках
реализации OpenCV является here и содержит этот ключ:
//Based on "Two Strategies to Speed up Connected Components Algorithms",
//the SAUF (Scan array union find) variant
//using decision trees
//Kesheng Wu, et al
благодарю вас за ответ. Вам нужно будет иметь доступную документацию, которая говорит об этом алгоритме? Я пытался искать в Интернете, но ничего не нашел – user7209199
Добавлена ссылка на статью. Было легко googlable – MBo
еще один глупый вопрос: имея обе стратегии, как узнать, что было использовано? Мне очень жаль твоей проблемы, но я новичок в этой области. – user7209199
@Miki В opencv 3.0 есть функция, называемая connectedComponent, и я хочу знать, как это делается и как работает. Я знаю, что он берет во входное двоичное изображение метки метки, которое возвращается, а также возможность подключения и возвращает количество подключенных компонентов, но поскольку мне приходится писать отчет, мне нужно знать, как он работает. Спасибо – user7209199
Не могли бы вы попытаться расширить свой вопрос. Меня особенно смущает «если кому-то это понравилась функция connectedComponent, предоставляемая библиотекой». Если вы можете заметить очевидную опечатку в этом, фантастически! Если нет, вы можете попробовать и повторить это другими словами? В любом случае, [edit] ваш вопрос, чтобы исправить проблему. –
Справа. Я отправил свой комментарий, пока вы отправляли свои сообщения. Как я сказал: пожалуйста, отредактируйте вопрос, чтобы включить эту информацию. –