@wickedwannabe

Как принять решение о типе фигуры (квадрат или круг) на бинарном изображении?

Приветствую. Имеется массив нулей и единиц представляющий бинарное изображение. На нем могут быть изображены геометрические фигуры. Пример:

000000000000000
000111111000000
000111111000000
000111111000000
000111111000000
000111111000000
000111111000000
000000000000000

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

  • Подсчитаны моменты для рядов и столбцов фигуры(Если моменты примерно равны то это симметричная фигура)
  • Отношение расстояний между центроидом фигуры и максимально удаленной точкой периметра и минимально удаленной точкой периметра (Если примерно равно 1.41 то это квадрат)
  • Подсчитана компактность (circularity) Харалика (параметр растет с приближением формы фигуры к окружности)



На основании этих параметров принимается решение простым деревом решений "Если-то-иначе". Подскажите, есть ли более красивые методы принятия решения о типе фигуры? Сейчас в тренде нейросети и различные автоматы но я, к сожалению, совсем не знаком с этой темой. Сомнения о правильности возникли из-за доп. условия в задаче: необходимо вывести вероятность правильности принятого решения, а метод с деревом решений не представляет такую возможность.
  • Вопрос задан
  • 525 просмотров
Решения вопроса 1
GavriKos
@GavriKos
Нейросеть как раз и даст вам вероятность и отлично подходит под эти входные данные. Курите по ним статьи, начиная с самых простых где распознают числа - вот прям ваш кейс.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Мне очень нравятся Ваши (особенно) вторая и третья характеристики. Я бы предложил построить из их значений двумерное пространство, вычислить функцию вероятности на нем, и как следствие решить задачу о кривой, разделяющей области, более характерные для квадратов и более характерные для кругов.
Ответ написан
Комментировать
@AlexSku
не буду отвечать из-за модератора
В тулбоксе Image Processing (MatLab) есть функция regionprops. Пример.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы