roboforum.ru

Технический форум по робототехнике.

Алгоритм распознавания простых геометрических фигур

Алгоритм распознавания простых геометрических фигур

nikolai44 » 09 дек 2013, 19:06

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

Я представляю работу алгоритма так:
1) Программа выделяет контуры
2) Разбивает изображение на сегменты с фигурой в каждом
3) Заново определяем контуры в каждом сегменте
4) Определяет момент каждой фигуры и сравнивает с моментами эталонов (определяем какая это геометрическая фигура)
5) Находим площадь фигуры в пикселях (т.о. находим размеры)
6) Находим центр фигуры и определяем усредненное значение цвета соседних пикселей
7) Создаем файл с данными каждой фигуры (геометрическая фигура, размеры, цвет)

В связи с этим у меня следующие вопросы:
1) Как выделить части(сегменты) вокруг фигур
2) Программа выделяет контуры на изображении, сравнивает момент с моментами эталонов и выводит найденный контур на экран. А как понять,
какая фигура распознана (использую этот код: robocraft.ru/blog/computervision/867.html)?

Сложности добавляет то, что на изображении присутствуют блики и цвет фигур неоднородный (фон белый, а фигуры от черного до светло-голубого цвета).
Пожалуйста, напишите какие функции нужно использовать.
Гуглом пользоваться умею, поискать смогу.

Re: Алгоритм распознавания простых геометрических фигур

=DeaD= » 09 дек 2013, 19:22

Примеры картинок дайте, на которых нужно провести распознавание. По распознаванию квадратов и кругов вроде даже в сэмплах есть.

Re: Алгоритм распознавания простых геометрических фигур

nikolai44 » 09 дек 2013, 19:47

Изображение
Для простоты на данный момент я стер внутреннюю заливку.
Я рассматривал программу, выделяющую круги, она не совсем верно определяет их.

Re: Алгоритм распознавания простых геометрических фигур

TimkaTV » 13 ноя 2014, 20:35

Если необходимо выделить контур фигур, то можно попробовать маску Лапласиана (Можно почитать у Гонсалеса)
Перед этим можно и контраст увеличить.


cron
Rambler\'s Top100 Mail.ru counter