Ключевые точки SimpleBlobDetection не центрированы визуально (opencv C++)
Я пытаюсь использовать простой детектор BLOB-объектов opencv, чтобы определить цвета на кубике Рубика. До сих пор я использовал этот фантастический ресурс, и он оказался очень полезным и описательным. После некоторой настройки мне удалось создать хорошие фильтры для каждого цвета. Я смотрю на координаты x и y каждого цветового объекта, и, поскольку кубы имеют равномерный интервал, делим быстрое округление, чтобы определить, к какой строке и столбцу они принадлежат, группы по два делятся и принадлежат двум разным строкам / столбцы соответственно.
Это скорее вопрос любопытства, чем все остальное. На мой взгляд, кажется, что центроиды вычисляются неправильно... разве нарисованный круг не должен быть более центрирован в каждом шарике? Все же оба, кажется, торчат произвольно в одну сторону.
Ниже у меня есть исходное изображение куба и два цветных фильтра: верх для зеленого и низ для синего.
Как вы можете видеть, зеленые и синие капли расположены правильно и должны быть достаточно далеко друг от друга, чтобы их можно было разделить на отдельные ряды, но центроиды визуально кажутся отклоненными от центров капель (зеленый центроид должен быть больше вправо, а синий больше слева). Есть ли что-то, что я здесь не замечаю? Это просто причуды системы?