Преобразование Хафа для поиска сегментов кривой

Преобразование Хафа можно использовать для извлечения строк из изображений. Его также можно использовать для извлечения кривых — это немного сложнее, поскольку преобразования Хафа более высокой размерности потребляют ресурсы. Мне было интересно, как можно ограничить преобразование Хафа двумерным пространством голосования для кривой порядка 3, то есть x^{3}+ax^{2}+bx+c ?

Кто-нибудь знает какие-нибудь хорошие сайты, объясняющие это (не могу найти). Или объяснение здесь, если его нет :).


person ale    schedule 31.03.2011    source источник
comment
Спасибо всем - прочитаю все это, когда у меня будет возможность, и выберу решение.   -  person ale    schedule 02.04.2011


Ответы (3)


Суть Обобщенного преобразования Хафа в том, что «стороны» аккумулятора и есть тот ответ, который вы ищете. Если вы пытаетесь сопоставить эллипсы или произвольные кривые - в вашем случае параметры a, b, c, то вам следует построить 3D-аккумулятор и искать там максимум. Google «обнаружение эллипса с использованием преобразования Хафа» или «обнаружение произвольной формы с использованием преобразования Хафа».

Есть много способов оптимизировать ваш поиск в многомерном накопителе, поэтому не бойтесь строить многомерное параметризованное пространство HT - это может дать вам хороший обзор вашей проблемы.

Вы можете разделить поиск на два этапа — например, построить классический 2D для ваших параметров a и b, а затем использовать очень простой 1D-накопитель для нахождения c, это было сделано при обнаружении краев, но имейте в виду, что это разделение может ввести большие ошибки, если вы a, b, c взаимозависимы.

Способы оптимизации многомерного преобразования Хафа: (вероятностное) рандомизированное преобразование Хафа, гибридное и многомерное преобразование Хафа.

Кроме того, обобщенное преобразование Хафа и преобразование Радона почти синонимичны, поэтому для обнаружения произвольной формы «преобразование Радона» может дать вам лучшие идеи: преобразование Хафа — это дискретная версия непрерывного преобразования Радона.

person Community    schedule 01.04.2011

Попробуйте погуглить «Обобщенное преобразование Хафа», и вы найдете много материала по этому поводу, в том числе оригинальную статью Балларда, которая кажется вполне читаемой. Какой из них лучше для вас, зависит от того, с чего вы начинаете, поэтому Google, вероятно, ваш лучший вариант.

http://www.scientist.google.com дает много статей, но лишь немногие из них бесплатны (хотя, если у вас есть доступ, это, пожалуй, лучшее начало).

person tom10    schedule 31.03.2011
comment
Спасибо, Том, да, я просмотрел несколько статей. Однако я хочу знать, как ограничить пространство для голосования 2D. Возможно, я пропустил это в оригинальной статье, но я не ожидал, что это будет там, поскольку это скорее оптимизация. - person ale; 31.03.2011
comment
Мне кажется, что пример эллипса Балларда очень похож на то, что вы хотите. Там он начинает с 4 свободных параметров в виде эллипса и использует инварианты, присущие HT, чтобы удалить некоторые из них. - person tom10; 31.03.2011

Вам нужно только найти кривую, для которой вы уже знаете параметры a, b, c? Используя GHT, вы можете создать дискретное пространство для голосования из своего экв. Используйте его для голосования в двухмерном пространстве, и вы найдете свою кривую. Если вы пытаетесь определить a, b, c из преобразования Хафа, это будет сложнее :)

person code-gijoe    schedule 31.03.2011