Простейшим случаем преобразования Хафа является линейное преобразование для обнаружения прямых линий.В пространстве изображения прямая линия может быть описана как y = mx + b и может быть графически построена для каждой пары точек изображения (x, y)
Так что это говорит вам, что x
и y
соответствуют оборотной стороне изображения.
В преобразовании Хафа основная идея состоит в том, чтобы рассматривать характеристики прямой линии не как точки изображения (x1, y1), (x2,y2), ..., но вместо этого, в терминах его параметров, таких как параметр наклона m и параметр перехвата b.
На основании этого факта можно представить прямую линию y = mx + bкак точка (b, m) в пространстве параметров.Однако возникает проблема, заключающаяся в том, что вертикальные линии приводят к неограниченным значениям параметров m и b.По вычислительным причинам для линий в преобразовании Хафа лучше использовать другую пару параметров, обозначаемых и (theta).
Параметр rho представляет расстояние между линией и началом координат, в то время кактета - это угол вектора от начала координат до этой ближайшей точки.
Это говорит о том, что rho
и theta
соответствуют: они являются представлением в полярных координатах наклона и пересеченияСтрока, которую вы пытаетесь описать в своем изображении.
На SourceForge вы можете найти C++
реализацию грубого преобразования.
Описание, из которогоВы должны быть в состоянии интерпретировать код, который я указал в предыдущей ссылке, может быть следующим:
Алгоритм преобразования Хафа использует массив, называемый аккумулятором, для обнаружения существования строки y= mx + b.
Например, задача линейного преобразования Хафа имеет два неизвестных параметра: m и b.
ДляАлгоритм преобразования Хафа определяет, что для каждого пикселя и его окрестности достаточно данных о наличии края в этом пикселе.Если это так, он вычислит параметры этой линии, а затем найдет ячейку аккумулятора, в которую попадают параметры, и увеличит значение этой ячейки.
Найдя ячейки с самыми высокими значениями, обычноища локальные максимумы в пространстве аккумулятора, наиболее вероятные линии можно извлечь