Перейти к содержимому
Compvision.ru
Smorodov

Дескриптор Фурье (контуры)

Recommended Posts

Соорудил пару функций для работы с дескрипторами Фурье.

Первая функция, для контура вычисляет коэффициенты Фурье разложения (это и есть дескрипторы).

Вторая функция по заданному количеству коэффициентов восстанавливает контур.

Причем, если задать количество коэффициентов меньше полученного при разложении, то контур сглаживается, постепенно теряя мелкие детали.

Здесь, для получения сглаженного контура, использовано только 20 комплексных коэффициентов из примерно 2000.

post-1-0-61587300-1349037007_thumb.png

FourierDescriptors.cpp

Для получения контура использовался файл Contour.bmp (в архиве):

Contour.zip

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если я правильно понял код, то вы использовали ненормированные дескрипторы Фурье?

То есть если сравнивать два одинаковых объекта на основе рассчитанных дескрипторов (как в случае с моментами), и при этом один из объектов будет подвергнут некоторым аффинным преобразованиям, то классификатор их будет относить к разным классам. Поправьте если я не прав.

И если коэффициенты нормировать можно ли использовать функцию MatchTemplate к ним?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я использовал эту функцию для сглаживания контуров, по поводу сравнения не смотрел.

ЗЫ: У Гозалеса и Вудса есть несколько параграфов по этому поводу, но я пока особо не смотрел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я как раз закопался в литературу в изучении этой темы. Через время попытаюсь соорудить сравнение объектов на основе нормированных дескрипторов Фурье и выложить код сюда. Если кому нужна инфа по этой теме сообщите у меня есть пара статей по нормированию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это было бы интересно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Собственно вот статья с описанием как можно нормировать дескрипторы с практическим применением в виде распознавания текста.

Если у вас руки быстрее дойдут, пожалуйста, выложите полученный код в эту ветку.

Фурье и Моменты.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо.

Хорошо если что сделаю, будет лежать здесь.

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

UPD: Кажись дошло, меняется фаза коэффициентов, а модуль остается постоянным.

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

и еще, для замкнутого контура, разность фаз гармоник, сдается мне, тоже величина инвариантная к повороту.

Книжка еще по теме попалась вроде не плохая: Shape Classification and Analysis: Theory and Practice, Second Edition

000d3e65_medium.jpeg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот нашел.

Про поворот мне кажется говорится более подробно в этой статье про кумулятивную угловую функцию.

Фурье и Нейросеть.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×