Ключевые точки SimpleBlobDetection не центрированы визуально (opencv C++)

Я пытаюсь использовать простой детектор BLOB-объектов opencv, чтобы определить цвета на кубике Рубика. До сих пор я использовал этот фантастический ресурс, и он оказался очень полезным и описательным. После некоторой настройки мне удалось создать хорошие фильтры для каждого цвета. Я смотрю на координаты x и y каждого цветового объекта, и, поскольку кубы имеют равномерный интервал, делим быстрое округление, чтобы определить, к какой строке и столбцу они принадлежат, группы по два делятся и принадлежат двум разным строкам / столбцы соответственно.

Это скорее вопрос любопытства, чем все остальное. На мой взгляд, кажется, что центроиды вычисляются неправильно... разве нарисованный круг не должен быть более центрирован в каждом шарике? Все же оба, кажется, торчат произвольно в одну сторону.

Ниже у меня есть исходное изображение куба и два цветных фильтра: верх для зеленого и низ для синего.

исходное изображение неточные центроиды

Как вы можете видеть, зеленые и синие капли расположены правильно и должны быть достаточно далеко друг от друга, чтобы их можно было разделить на отдельные ряды, но центроиды визуально кажутся отклоненными от центров капель (зеленый центроид должен быть больше вправо, а синий больше слева). Есть ли что-то, что я здесь не замечаю? Это просто причуды системы?

0 ответов

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