Приветствую. Имеется массив нулей и единиц представляющий бинарное изображение. На нем могут быть изображены геометрические фигуры. Пример:
000000000000000
000111111000000
000111111000000
000111111000000
000111111000000
000111111000000
000111111000000
000000000000000
Нужно идентифицировать квадраты и окружности. На данный момент реализована разметка фигур и сбор параметров характеризующих геометрическую фигуру:
- Подсчитаны моменты для рядов и столбцов фигуры(Если моменты примерно равны то это симметричная фигура)
- Отношение расстояний между центроидом фигуры и максимально удаленной точкой периметра и минимально удаленной точкой периметра (Если примерно равно 1.41 то это квадрат)
- Подсчитана компактность (circularity) Харалика (параметр растет с приближением формы фигуры к окружности)
На основании этих параметров принимается решение простым деревом решений "Если-то-иначе". Подскажите, есть ли более красивые методы принятия решения о типе фигуры? Сейчас в тренде нейросети и различные автоматы но я, к сожалению, совсем не знаком с этой темой. Сомнения о правильности возникли из-за доп. условия в задаче: необходимо вывести
вероятность правильности принятого решения, а метод с деревом решений не представляет такую возможность.