Smorodov 579 Жалоба Опубликовано September 30, 2012 Соорудил пару функций для работы с дескрипторами Фурье. Первая функция, для контура вычисляет коэффициенты Фурье разложения (это и есть дескрипторы). Вторая функция по заданному количеству коэффициентов восстанавливает контур. Причем, если задать количество коэффициентов меньше полученного при разложении, то контур сглаживается, постепенно теряя мелкие детали. Здесь, для получения сглаженного контура, использовано только 20 комплексных коэффициентов из примерно 2000. FourierDescriptors.cpp Для получения контура использовался файл Contour.bmp (в архиве): Contour.zip 2 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
kudukSweetone 3 Жалоба Опубликовано October 24, 2012 Если я правильно понял код, то вы использовали ненормированные дескрипторы Фурье? То есть если сравнивать два одинаковых объекта на основе рассчитанных дескрипторов (как в случае с моментами), и при этом один из объектов будет подвергнут некоторым аффинным преобразованиям, то классификатор их будет относить к разным классам. Поправьте если я не прав. И если коэффициенты нормировать можно ли использовать функцию MatchTemplate к ним? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано October 24, 2012 Я использовал эту функцию для сглаживания контуров, по поводу сравнения не смотрел. ЗЫ: У Гозалеса и Вудса есть несколько параграфов по этому поводу, но я пока особо не смотрел. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
kudukSweetone 3 Жалоба Опубликовано October 24, 2012 Я как раз закопался в литературу в изучении этой темы. Через время попытаюсь соорудить сравнение объектов на основе нормированных дескрипторов Фурье и выложить код сюда. Если кому нужна инфа по этой теме сообщите у меня есть пара статей по нормированию. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано October 24, 2012 Это было бы интересно. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
kudukSweetone 3 Жалоба Опубликовано October 24, 2012 Собственно вот статья с описанием как можно нормировать дескрипторы с практическим применением в виде распознавания текста. Если у вас руки быстрее дойдут, пожалуйста, выложите полученный код в эту ветку.Фурье и Моменты.pdf Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано October 24, 2012 Спасибо. Хорошо если что сделаю, будет лежать здесь. Понятно про смещение (исключаем первый коэффициент), понятно про масштаб (делим все на модуль второго коэффициента),пока не понятно про поворот. UPD: Кажись дошло, меняется фаза коэффициентов, а модуль остается постоянным. Следовательно модули, начиная с третьего (второй бесполезен т.к. мы на него поделили всю последовательность и теперь он равен единице) и есть тот самый, инвариантный к масштабу, сдвигу и повороту дескриптор. и еще, для замкнутого контура, разность фаз гармоник, сдается мне, тоже величина инвариантная к повороту. Книжка еще по теме попалась вроде не плохая: Shape Classification and Analysis: Theory and Practice, Second Edition Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
kudukSweetone 3 Жалоба Опубликовано October 24, 2012 Вот нашел. Про поворот мне кажется говорится более подробно в этой статье про кумулятивную угловую функцию.Фурье и Нейросеть.pdf Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах