Используя щелчок мыши, чтобы обнаружить контур в opencv

У меня есть различные контуры / сегменты в изображении. Прямо сейчас я использую клавиатуру для ввода, какой сегмент я хочу извлечь из изображения (приведено ниже)

Рассмотрим розовую область как сегмент 1 и белую область как сегмент 2. Я использую клавиатуру для ввода, какой сегмент (1 или 2) я хочу извлечь. На контуре рисования я получаю

Я сохранил цвета каждого сегмента в массиве и использую массив для извлечения конкретного сегмента.

Теперь я хочу знать, возможно ли использовать щелчок мыши для идентификации сегмента / контура, чтобы я мог рисовать несколько контуров и идентифицировать сегмент с помощью мыши и не использовать клавиатуру для ввода номера сегмента.

1 ответ

Я знаю, что этот вопрос задавали некоторое время назад, но именно это я и сделал, чтобы решить свою проблему. Я делал это в Python, но это должно быть похоже.

Я использовал алгоритм заливки OpenCV, чтобы заполнить то, где щелкнул, используя нарисованные контуры на двоичном изображении в качестве маски заливки, где контуры белые, а фон черный. Таким образом, заливка не может пройти по краям контура.

Как только вы заполняете контур определенным цветом, его легко извлечь с помощью некоторого порога.

Надеюсь это поможет.

Другие вопросы по тегам