Объяснять Преобразование Хафа
Я просто авантюрный и делаю свой первый шаг к компьютерному зрению. Я попытался реализовать преобразование Хоу самостоятельно, но я просто не понимаю всей картины. Я прочитал запись Википедии и даже оригинальное "использование преобразования Хью для обнаружения линий и кривых на изображениях" Ричарда Дуды и Питера Харта, но это не помогло.
может кто-нибудь помочь объяснить мне на более дружественном языке?
4 ответов
чаще всего думать о линии в координатах прямоугольника, т. е. y = mx + b. Как говорится в статье Википедии, линия также может быть выражена в полярной форме. Преобразование Хью использует это изменение представления (для линий, во всяком случае. Обсуждение также может быть применено к кругам, эллипсам и т. д.).
первым шагом в преобразовании Hough является уменьшение изображения до набора ребер. Canny edge-детектор является частым выбором. Полученное изображение края служит как входной сигнал к процессу Hough.
подводя итог, пиксели "горят" в изображении края преобразуются в полярную форму, т. е. их положение представлено с помощью направления тэта и на расстоянии r - вместо x и y. (Центр изображения обычно используется в качестве опорной точки для изменения координат.)
преобразование Хью по существу является гистограммой. Отображение граничных пикселей в одну и ту же тету предполагается, что r определяет линию на изображении. Чтобы вычислить частоту возникновения,тэта и r дискретизируются (разбиваются на несколько ячеек). После преобразования всех пикселов ребер в полярную форму ячейки анализируются для определения линий исходного изображения.
обычно ищут N наиболее частые параметры-или пороговые параметры, такие, которые считаются меньше, чем некоторые n несколько игнорируемый.
Я не уверен, что этот ответ лучше, чем источники, которые вы первоначально представили - есть ли конкретный момент, на котором вы застряли?
вот очень простое, визуальное объяснение того, как преобразование Хоу работает для обнаружения линий в изображении:
преобразование Хоу-это способ найти наиболее вероятные значения, которые представляют собой линию (или круг, или многое другое).
вы даете преобразование Хоу изображение линии в качестве ввода. Это изображение будет содержать два типа пикселей: те, которые являются частью линии, и те, которые являются частью фона.
для каждого пикселя, который является частью линии, вычисляются все возможные комбинации параметров. Например, если пиксель на координате (1, 100) является частью линии, то это может быть частью линии, где градиент (m) = 0 и y-перехват (c) = 100. Он также может быть частью m = 1, c = 99; или m = 2, c = 98; или m = 3, c = 97; и так далее. Вы можете решить уравнение линии y = mx + c, чтобы найти все возможные комбинации.
каждый пиксель дает один голос каждому из параметров (m и c), которые могли бы это объяснить. Таким образом, вы можете себе представить, если ваша линия имеет 1000 пикселей, то правильная комбинация m и c будет иметь 1000 голосов.
комбинация m и c, которая имеет наибольшее количество голосов, является тем, что возвращается в качестве параметров для линии.
вот еще одна перспектива (один используется в пилотном эпизоде шоу T. V цифры): представьте, что фонтаноподобный спринклерный газон был где-то на лужайке раньше, выбрасывая капли воды вокруг себя. Теперь разбрызгиватель исчез, но капли остались. Представьте себе, что каждая капля превращается в свой собственный разбрызгиватель, который сам выбрасывает капли вокруг себя - во всех направлениях, потому что капля не знает, откуда она взялась. Это разбросает много воды тонко вокруг на земля, за исключением того, что будет место, где много воды попадает из всех капель сразу. Это место, где был спринклер.
приложение к (e.g) линия обнаружение подобна. Каждая точка на изображении является одной из исходных капель; когда она действует как разбрызгиватель, она посылает свои собственные капли, отмечая все линии, которые могут проходить через эту точку. Места, где много вторичных капель Земли представляют параметры линии, которая проходит через множество точек изображения-вуаля! Линия обнаружена!