У меня есть изображение в градациях серого с темными точками, которое я могу преобразовать в двоичное (черно-белое) изображение.
Образец:
Входной сигнал в градациях серого:
Ч / Б изображение:
Мне нужно найти точки в красных кружках, как на
Расстояние между точками больше- или менее равномерно, если нет острого угла.
У меня есть полуобработанное решение на основе исходного изображения в градациях серого и детектора углов Харриса вместе с кластеризацией, но оно довольно медленное и не такое прямолинейное .
Я пробовал преобразование Хафа для кругов, но точки слишком малы (приблизительно 10x10 px), чтобы их можно было правильно определить без слишком большого шума.
Однако я могу сделать это правильно обнаружить линию на изображении в градациях серого - увидеть красную линию на изображении. Я уже использую эти знания и фильтрую точки по расстоянию от линии.
Однако в некоторых случаях это не удается. Например, приведенное ниже изображение весьма проблематично c - на границе вика имеется «дыра», а точки расположены слишком близко, соединены жирной линией. У меня также есть ложные срабатывания от чисел, которые определяются как точки.
Есть ли у вас какие-либо идеи для возможного решения, в идеале с OpenCV?
Обратите внимание, что это всего лишь образец, точки могут быть не на тонкой линии, а скорее на отдельной линии или слишком яркая линия и т. Д. c. Таким образом, линия не может быть использована для обнаружения точек.