Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Преобразование Хафа - это метод извлечения признаков , используемый в анализе изображений , компьютерном зрении и обработке цифровых изображений . [1] Цель метода - найти несовершенные экземпляры объектов в определенном классе форм с помощью процедуры голосования. Эта процедура голосования выполняется в пространстве параметров , из которого объекты-кандидаты получаются в виде локальных максимумов в так называемом пространстве аккумуляторов, которое явно конструируется алгоритмом вычисления преобразования Хафа.

Классическое преобразование Хафа было связано с идентификацией линий на изображении, но позже преобразование Хафа было расширено для определения положений произвольных форм, чаще всего кругов или эллипсов . Преобразование Хафа, используемое сегодня повсеместно, было изобретено Ричардом Дудой и Питером Хартом в 1972 году, которые назвали его «обобщенным преобразованием Хафа» [2] после соответствующего патента 1962 года Пола Хоу. [3] [4] Это преобразование было популяризировано в сообществе компьютерного зрения Даной Х. Баллард в журнальной статье 1981 года, озаглавленной «Обобщение преобразования Хафа для обнаружения произвольных форм ".

История [ править ]

Первоначально он был изобретен для машинного анализа фотографий пузырьковой камеры (Hough, 1959).

Преобразование Хафа было запатентовано как патент США 3069654 в 1962 году и передано Комиссии по атомной энергии США под названием «Метод и средства для распознавания сложных структур». В этом патенте используется параметризация угла наклона для прямых линий, что неудобно приводит к неограниченному пространству преобразования, поскольку наклон может уходить в бесконечность.

Ротета-параметризация, повсеместно используемая сегодня, была впервые описана в

Дуда, РО; Харт, ЧП (январь 1972 г.). «Использование преобразования Хафа для обнаружения линий и кривых на изображениях» (PDF) . Comm. ACM . 15 : 11–15. DOI : 10.1145 / 361237.361242 .

хотя это уже было стандартом для преобразования Радона, по крайней мере, с 1930-х годов.

Вариация О'Гормана и Клоуза описана в

О'Горман, Фрэнк; Клоуз, МБ (1976). «Поиск краев изображения через коллинеарность характерных точек». IEEE Trans. Comput . 25 (4): 449–456. DOI : 10.1109 / TC.1976.1674627 .

Рассказ о том, как была изобретена современная форма преобразования Хафа, приведен в

Харт, ЧП (ноябрь 2009 г.). «Как было изобретено преобразование Хафа» (PDF) . Журнал обработки сигналов IEEE . 26 (6): 18–22. DOI : 10.1109 / msp.2009.934181 .

Теория [ править ]

При автоматическом анализе цифровых изображений часто возникает подзадача обнаружения простых форм, таких как прямые линии, круги или эллипсы. Во многих случаях детектор краяможет использоваться как этап предварительной обработки для получения точек изображения или пикселей изображения, которые находятся на желаемой кривой в пространстве изображения. Однако из-за несовершенства данных изображения или детектора краев могут быть пропущенные точки или пиксели на желаемых кривых, а также пространственные отклонения между идеальной линией / кругом / эллипсом и точками края с шумом, поскольку они получены из детектор края. По этим причинам часто нетривиально сгруппировать извлеченные элементы ребер в соответствующий набор линий, окружностей или эллипсов. Цель преобразования Хафа - решить эту проблему, сделав возможным группирование краевых точек в объекты-кандидаты путем выполнения явной процедуры голосования по набору параметризованных объектов изображения (Shapiro and Stockman, 304).

Обнаружение линий [ править ]

Простейший случай преобразования Хафа - обнаружение прямых линий. В общем, прямая y = mx + b может быть представлена ​​как точка ( b , m ) в пространстве параметров. Однако вертикальные линии создают проблему. Они привели бы к неограниченным значениям параметра наклона m . Таким образом, по вычислительным причинам Дуда и Харт [5] предложили использовать нормальную форму Гессе

,

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

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

Таким образом, можно связать с каждой линией изображения пару . Плоскость иногда называют Hough пространства для множества прямых линий в двух измерениях. Это представление делает преобразование Хафа концептуально очень близким к двумерному преобразованию Радона . Фактически, преобразование Хафа математически эквивалентно преобразованию Радона, но эти два преобразования имеют разные вычислительные интерпретации, традиционно связанные с ними. [6]

Если задана единственная точка на плоскости, то набор всех прямых линий, проходящих через эту точку, соответствует синусоидальной кривой на плоскости ( r, θ ), которая уникальна для этой точки. Набор из двух или более точек, образующих прямую линию, создаст синусоиды, которые пересекаются в ( r, θ ) этой линии. Таким образом, задача обнаружения коллинеарных точек может быть преобразована в задачу поиска совпадающих кривых. [7]

Реализация [ править ]

Алгоритм линейного преобразования Хафа оценивает два параметра, которые определяют прямую линию. Пространство преобразования имеет два измерения, и каждая точка в пространстве преобразования используется в качестве аккумулятора для обнаружения или идентификации строки, описываемой . Каждая точка обнаруженных краев изображения вносится в аккумуляторы.

Размер аккумулятора равно числу неизвестных параметров, т.е., два, принимая во внимание квантованных значений г и & thetas в паре (R, Q). Для каждого пикселя в точке (x, y) и его окрестности алгоритм преобразования Хафа определяет, достаточно ли доказательств наличия прямой линии в этом пикселе. Если это так, он вычислит параметры (r, θ) этой строки, а затем отыщет накопитель, в который попадают параметры, и увеличит значение этого интервала. Путем нахождения бинов с наивысшими значениями, обычно путем поиска локальных максимумов в пространстве аккумулятора, можно выделить наиболее вероятные линии и считать их (приблизительные) геометрические определения. (Шапиро и Стокман, 304) Самый простой способ найти эти вершинызаключается в применении некоторой формы порога, но другие методы могут дать лучшие результаты в различных обстоятельствах - определение того, какие линии и сколько обнаружены. Поскольку возвращаемые строки не содержат информации о длине, на следующем шаге часто бывает необходимо найти, какие части изображения совпадают с какими строками. Более того, из-за ошибок несовершенства на этапе обнаружения края обычно будут ошибки в накопительном пространстве, что может сделать нетривиальным поиск соответствующих пиков и, следовательно, соответствующих линий.

Конечным результатом линейного преобразования Хафа является двумерный массив (матрица), подобный аккумулятору: одно измерение этой матрицы представляет собой квантованный угол θ, а другое измерение - квантованное расстояние r. Каждый элемент матрицы имеет значение, равное сумме точек или пикселей, которые расположены на строке, представленной квантованными параметрами (r, θ). Таким образом, элемент с наибольшим значением указывает прямую линию, которая больше всего представлена ​​на входном изображении. [8]

Примеры [ править ]

Пример 1 [ править ]

Рассмотрим три точки данных, показанные здесь черными точками.

  • Для каждой точки данных нанесено несколько линий, проходящих через нее, все под разными углами. Они показаны здесь разными цветами.
  • Преобразование Хафа накапливает вклады от всех пикселей обнаруженного края. Для каждой линии существует опорная линия, перпендикулярная ей и пересекающая начало координат . В каждом случае один из них показан стрелкой.
  • Длина (т.е. перпендикулярна расстояние до начала координат) и угол каждой опорной линии вычисляются. Длины и углы указаны в таблицах под диаграммами.

Из расчетов видно, что в любом случае линия опоры под углом 60 ° имеет одинаковую длину. Следовательно, понятно, что соответствующие линии (синие на картинке выше) очень похожи. Таким образом, можно предположить, что все точки лежат близко к синей линии.

Пример 2 [ править ]

Ниже приведен другой пример, показывающий результаты преобразования Хафа для растрового изображения, содержащего две толстые линии.

Результаты этого преобразования были сохранены в матрице. Значение ячейки представляет собой количество кривых, проходящих через любую точку. Более высокие значения ячеек отображаются ярче. Два отчетливо ярких пятна - это параметры Хафа двух линий. По положению этих пятен можно определить угол и расстояние от центра изображения двух линий входного изображения.

Варианты и расширения [ править ]

Использование направления градиента для уменьшения количества голосов [ править ]

Улучшение, предложенное О'Горманом и Клоузом, можно использовать для обнаружения линий, если принять во внимание, что локальный градиент интенсивности изображения обязательно будет ортогонален краю. Поскольку обнаружение краев обычно включает вычисление величины градиента интенсивности , направление градиента часто обнаруживается как побочный эффект. Если данная точка с координатами ( x, y ) действительно находится на линии, то локальное направление градиента дает параметр θ, соответствующий указанной линии, и rпараметр сразу же получается. (Шапиро и Стокман, 305). Направление градиента можно оценить с точностью до 20 °, что укорачивает синусоидальный след от полных 180 ° до примерно 45 °. Это сокращает время вычислений и имеет интересный эффект уменьшения количества бесполезных голосов, тем самым улучшая видимость всплесков, соответствующих реальным линиям на изображении.

Преобразование Хафа на основе ядра (KHT) [ править ]

Фернандес и Оливейра [9] предложили улучшенную схему голосования для преобразования Хафа, которая позволяет программной реализации достичь производительности в реальном времени даже на относительно больших изображениях (например, 1280 × 960). Преобразование Хафа на основе ядра использует ту же параметризацию, предложенную Дудой и Хартом, но работает с кластерами приблизительно коллинеарных пикселей. Для каждого кластера голоса подаются с использованием ориентированного эллиптически-гауссовского ядра, которое моделирует неопределенность, связанную с линией наилучшего соответствия по отношению к соответствующему кластеру. Такой подход не только значительно улучшает производительность схемы голосования, но также обеспечивает более чистый аккумулятор и делает преобразование более устойчивым к обнаружению ложных линий.

Трехмерное преобразование Хафа на основе ядра для обнаружения плоскости (3DKHT) [ править ]

Лимбергер и Оливейра [10] предложили детерминированный метод обнаружения плоскостей в неорганизованных облаках точек, стоимость которого зависит от количества выборок, что обеспечивает производительность в реальном времени для относительно больших наборов данных (до точек на процессоре с тактовой частотой 3,4 ГГц). Он основан на стратегии быстрого голосования с преобразованием Хафа для плоских областей, вдохновленной преобразованием Хафа на основе ядра (KHT). Это трехмерное преобразование Хафа на основе ядра (3DKHT) использует быстрый и надежный алгоритм для сегментации кластеров приблизительно копланарных образцов и отбрасывает голоса за отдельные кластеры (а не за отдельные образцы) на () сферический аккумулятор, использующий гауссовское ядро ​​трех величин. Этот подход на несколько порядков быстрее, чем существующие (недетерминированные) методы обнаружения плоскостей в облаках точек, такие как RHT и RANSAC , и лучше масштабируется с размером наборов данных. Его можно использовать с любым приложением, которое требует быстрого обнаружения плоских объектов в больших наборах данных.

Преобразование Хафа кривых и его обобщение для аналитических и неаналитических форм [ править ]

Хотя описанная выше версия преобразования применяется только к поиску прямых линий, аналогичное преобразование можно использовать для поиска любой формы, которая может быть представлена ​​набором параметров. Например, круг можно преобразовать в набор из трех параметров, представляющих его центр и радиус, так что пространство Хафа станет трехмерным. Таким же образом можно найти произвольные эллипсы и кривые, а также любую форму, которую легко выразить как набор параметров.

Обобщение преобразования Хафа для обнаружения аналитических форм в пространствах любой размерности было предложено Фернандесом и Оливейрой. [11] В отличие от других подходов, основанных на преобразовании Хафа для аналитических форм, метод Фернандеса не зависит ни от формы, которую нужно обнаружить, ни от типа входных данных. Обнаружение может быть преобразовано в тип аналитической формы путем изменения предполагаемой модели геометрии, в которой данные были закодированы (например, евклидово пространство , проективное пространство , конформная геометрияи т. д.), а предлагаемая формулировка остается неизменной. Кроме того, он гарантирует, что намеченные формы представлены с наименьшим возможным количеством параметров, и позволяет одновременно обнаруживать различные виды фигур, которые лучше всего подходят для входного набора записей с разными размерностями и разными геометрическими определениями (например, одновременное обнаружение плоскостей и сфер, которые лучше всего подходят для набора точек, прямых и окружностей).

Для более сложных форм на плоскости (т. Е. Форм, которые не могут быть представлены аналитически в некотором двумерном пространстве), используется обобщенное преобразование Хафа [12] , которое позволяет элементу голосовать за конкретное положение, ориентацию и / или масштабирование форма с использованием предопределенной таблицы поиска. Преобразование Хафа накапливает вклады от всех пикселей в обнаруженном крае.

Процесс обнаружения круга [ править ]

Изменить алгоритм для обнаружения круглых форм вместо линий относительно просто.

  • Сначала мы создаем пространство аккумулятора, которое состоит из ячейки для каждого пикселя. Первоначально для каждой ячейки установлено значение 0.
  • Для каждой граничной точки (i, j) на изображении увеличьте все ячейки, которые в соответствии с уравнением круга могут быть центром круга. Эти ячейки представлены буквой в уравнении.
  • Для каждого возможного значения, найденного на предыдущем шаге, найдите все возможные значения, удовлетворяющие уравнению.
  • Поиск локальных максимумов в аккумуляторном пространстве. Эти ячейки представляют собой кружки, обнаруженные алгоритмом.

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

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

Обнаружение 3D-объектов (плоскостей и цилиндров) [ править ]

Преобразование Хафа также можно использовать для обнаружения трехмерных объектов в данных о диапазоне или трехмерных облаках точек . Расширение классического преобразования Хафа для обнаружения плоскости довольно просто. Плоскость представлена ​​своим явным уравнением, для которого мы можем использовать трехмерное пространство Хафа, соответствующее , и . Это расширение страдает теми же проблемами, что и его двумерный аналог, т. Е. Близкие к горизонтальным плоскости могут быть надежно обнаружены, в то время как производительность ухудшается, когда плоское направление становится вертикальным (большие значения и усиление шума в данных). Эта формулировка самолета использовалась для обнаружения самолетов в облаках точек, полученных с помощью лазерного сканирования с воздуха [13] и работает очень хорошо, потому что в этой области все плоскости почти горизонтальны.

Для обобщенного обнаружения плоскости с использованием преобразования Хафа плоскость может быть параметризована ее нормальным вектором (с использованием сферических координат) и ее расстоянием от начала координат, что приводит к трехмерному пространству Хафа. Это приводит к тому, что каждая точка входных данных голосует за синусоидальную поверхность в пространстве Хафа. Пересечение этих синусоидальных поверхностей указывает на наличие плоскости. [14] Более общий подход для более чем трех измерений требует, чтобы эвристика поиска оставалась возможной. [15]

Преобразование Хафа также использовалось для поиска цилиндрических объектов в облаках точек с использованием двухэтапного подхода. Первый шаг находит ориентацию цилиндра, а второй шаг находит положение и радиус. [16]

Использование взвешенных характеристик [ править ]

Одна общая деталь вариации. Таким образом, поиск интервалов с наибольшим счетчиком на одном этапе можно использовать для ограничения диапазона значений, поиск которых выполняется на следующем этапе.

Тщательно подобранное пространство параметров [ править ]

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

Рассмотрим задачу поиска эллипсов на изображении 800x600. Если предположить, что радиусы эллипсов ориентированы вдоль главных осей, пространство параметров будет четырехмерным. (x, y) определяет центр эллипса, а a и b обозначают два радиуса. Разрешение центру быть в любом месте изображения, добавляет ограничение 0 <x <800 и 0 <y <600. Если радиусам заданы те же значения, что и ограничения, то останется только редко заполненный массив аккумуляторов из более чем 230 миллиардов значений.

Созданной таким образом программе вряд ли будет позволено выделить достаточно памяти. Это не означает, что проблема не может быть решена, а только то, что нужно найти новые способы ограничения размера массива аккумуляторов, что делает это возможным. Например:

  1. Если разумно предположить, что каждый из эллипсов полностью содержится в изображении, диапазон радиусов может быть уменьшен. Наибольший радиус может быть, если центр эллипса находится в центре изображения, позволяя краям эллипса растягиваться к краям. В этом крайнем случае каждый радиус может составлять только половину величины размера изображения, ориентированного в одном и том же направлении. Уменьшение диапазона a и b таким образом уменьшает массив аккумуляторов до 57 миллиардов значений.
  2. Точность обмена на пространство при оценке преобразования Хафа накапливает вклады от всех пикселей на обнаруженной границе. Преобразование Хафа накапливает вклады от всех пикселей обнаруженного края. Центр: если прогнозируется отклонение центра на 3 по осям x и y, это уменьшает размер массива аккумуляторов примерно до 6 миллиардов значений.
  3. Точность обмена на пространство при оценке радиусов: если каждый радиус оценивается как отклонение на 5, происходит дальнейшее уменьшение размера массива аккумуляторов примерно на 256 миллионов значений.
  4. Обрежьте изображение по интересующим областям. Это зависит от изображения и, следовательно, непредсказуемо, но представьте себе случай, когда все интересующие края изображения находятся в верхнем левом квадранте этого изображения. В этом случае массив аккумуляторов можно уменьшить еще больше, ограничив все 4 параметра коэффициентом 2, что дает общий коэффициент уменьшения 16.

Применяя только первые три из этих ограничений к указанному примеру, размер массива аккумуляторов уменьшается почти в 1000 раз, в результате чего его размер с большей вероятностью уместится в памяти современного компьютера.

Эффективный алгоритм обнаружения эллипсов [ править ]

Юнхун Се и Цян Цзи предлагают эффективный способ реализации преобразования Хафа для обнаружения эллипсов, преодолевая проблемы с памятью. [17] Как обсуждалось в алгоритме (на странице 2 документа), этот подход использует только одномерный аккумулятор (для малой оси) для обнаружения эллипсов на изображении. Сложность составляет O (N 3 ) по количеству ненулевых точек на изображении.

Ограничения [ править ]

Преобразование Хафа эффективно только в том случае, если в правую ячейку попадает большое количество голосов, так что ячейку можно легко обнаружить среди фонового шума. Это означает, что корзина не должна быть слишком маленькой, иначе часть голосов упадет в соседние ячейки, что снизит видимость основной корзины. [18]

Кроме того, когда количество параметров велико (то есть, когда мы используем преобразование Хафа с обычно более чем тремя параметрами), среднее количество голосов, поданных в одном интервале, очень мало, и эти интервалы соответствуют реальному числу на изображении не обязательно имеют гораздо большее количество голосов, чем их соседи. Сложность увеличивается с каждым дополнительным параметром, где - размер пространства изображения, а - количество параметров. (Шапиро и Стокман, 310) Таким образом, преобразование Хафа необходимо использовать с большой осторожностью, чтобы обнаруживать что-либо, кроме линий или окружностей.

Наконец, большая часть эффективности преобразования Хафа зависит от качества входных данных: края должны быть хорошо обнаружены, чтобы преобразование Хафа было эффективным. Использование преобразования Хафа на зашумленных изображениях - очень деликатный вопрос, и, как правило, перед этим необходимо использовать этап удаления шума. В случае, когда изображение искажено пятнами, как в случае с радиолокационными изображениями, преобразование Радона иногда предпочтительнее для обнаружения линий, поскольку оно ослабляет шум посредством суммирования.

См. Также [ править ]

  • Обобщенное преобразование Хафа
  • Рандомизированное преобразование Хафа
  • Преобразование радона
  • преобразование Фурье

Ссылки [ править ]

  1. ^ Шапиро, Линда и Стокман, Джордж. "Компьютерное зрение", Прентис-Холл, Инк. 2001 г.
  2. ^ Дуда, RO и PE Hart, "Использование преобразования Хафа для обнаружения линий и кривых на изображениях", Comm. ACM, Vol. 15. С. 11–15 (январь 1972 г.)
  3. Hough, PVC Method and tools for распознавание сложных образов, Патент США 3069654, 18 декабря 1962 г.
  4. ^ PVC Hough, Машинный анализ изображений пузырьковой камеры , Proc. Int. Конф. Ускорители и приборы высоких энергий, 1959 г.
  5. Ричард О. Дуда и Питер Э. Харт (апрель 1971 г.). «Использование преобразования Хафа для обнаружения линий и кривых на изображениях» (PDF) . Центр искусственного интеллекта . CS1 maint: uses authors parameter (link)
  6. ^ CiteSeerX - Краткое введение в преобразования Радона и Хафа и как они соотносятся друг с другом.
  7. ^ «Преобразование Хафа» .
  8. ^ Дженсен, Джепп. «Преобразование Хафа для прямых линий» (PDF) . Архивировано из оригинального (PDF) 26 апреля 2012 года . Проверено 16 декабря 2011 года .
  9. ^ Фернандес, ЛАФ; Оливейра, ММ (2008). «Обнаружение линий в реальном времени с помощью улучшенной схемы голосования с преобразованием Хафа». Распознавание образов . 41 (1): 299–314. DOI : 10.1016 / j.patcog.2007.04.003 .
  10. ^ Лимбергер, FA; Оливейра, ММ (2015). «Обнаружение плоских областей в неорганизованных облаках точек в реальном времени» (PDF) . Распознавание образов . 48 (6): 2043–2053. DOI : 10.1016 / j.patcog.2014.12.020 . hdl : 10183/97001 .
  11. ^ Фернандес, ЛАФ; Оливейра, ММ (2012). «Общая основа для обнаружения подпространства в неупорядоченных многомерных данных». Распознавание образов . 45 (9): 3566–3579. DOI : 10.1016 / j.patcog.2012.02.033 .
  12. Перейти ↑ Ballard, DH (1981). «Обобщение преобразования Хафа для обнаружения произвольных форм». Распознавание образов . 13 (2): 111–122. DOI : 10.1016 / 0031-3203 (81) 90009-1 . ЛВП : 1802/13802 .
  13. ^ Vosselman Г., Dijkman, S: « 3D - модели здания Реконструкция с облаками точек и земли планов », международных архивов фотограмметрии, дистанционного зондирования и пространственной информации, том 34, часть 3 / W4, 22-24 октября, 2001 , Аннаполис, Массачусетс, США, стр. 37-44.
  14. ^ Тахир Раббани: «Автоматическая реконструкция промышленных установок - Использование облаков точек и изображений», стр. 43-44, Публикации по геодезии 62, Делфт, 2006. ISBN 978-90-6132-297-9 http: //www.ncg. knaw.nl/Publicaties/Geodesy/62Rabbani.html 
  15. ^ Ахтерт, Эльке; Бём, Кристиан; Дэвид, Йорн; Крегер, Пер; Зимек, Артур (2008). «Глобальная корреляционная кластеризация на основе преобразования Хафа». Статистический анализ и интеллектуальный анализ данных . 1 (3): 111–127. DOI : 10.1002 / sam.10012 .
  16. ^ Тахир Раббани и Франк ван ден Хеувел, « Эффективное преобразование Хоу для автоматического обнаружения цилиндров в облаках точек » в материалах 11-й ежегодной конференции Высшей школы вычислений и визуализации (ASCI '05), Нидерланды, июнь 2005 г.
  17. ^ Юнхун Се; Цян Цзи (2002). «Новый эффективный метод обнаружения эллипсов». Распознавание объектов поддерживается взаимодействием с пользователем для сервисных роботов . 2 . С. 957–960. CiteSeerX 10.1.1.1.8792 . DOI : 10.1109 / ICPR.2002.1048464 . ISBN  978-0-7695-1695-0.
  18. ^ «Преобразования изображений - Преобразование Хафа» . Homepages.inf.ed.ac.uk . Проверено 17 августа 2009 .

Внешние ссылки [ править ]

  • hough_transform.cpp - код C ++ - пример библиотеки CImg (библиотека с открытым исходным кодом , исходный код C ++ , изображения в градациях серого )
  • Интерактивная демонстрация основ преобразования Хафа
  • https://web.archive.org/web/20070827233423/http://www.rob.cs.tu-bs.de/content/04-teaching/06-interactive/Hough.html - Java-апплет + источник для обучения преобразование Хафа в форме углового пересечения
  • https://web.archive.org/web/20070827191440/http://www.rob.cs.tu-bs.de/content/04-teaching/06-interactive/HNF.html - Java-апплет + источник для обучения Преобразование Хафа в нормальной форме
  • http://www.sydlogan.com/deskew.html - Выравнивание изображений с помощью преобразования Хафа ( изображения в оттенках серого , исходный код C ++ )
  • https://web.archive.org/web/20070922090216/http://imaging.gmse.net/articledeskew.html - Выравнивание изображений с помощью преобразования Хафа ( исходный код Visual Basic )
  • http://www.mitov.com/products/visionlab - Delphi , C ++ и .NET, бесплатная для образовательных целей библиотека, содержащая компоненты преобразования Хафа Line, Circle и Line segment.
  • Тарша-Курди, Ф., Ландес, Т., Груссенмейер, П., 2007a. Алгоритмы преобразования Хафа и расширенные алгоритмы RANSAC для автоматического обнаружения трехмерных плоскостей крыш зданий по данным лидара. Труды ISPRS. Мастерская Лазерного сканирования. Эспоо, Финляндия, 12–14 сентября 2007 г.
  • Into содержит реализации линейного и кругового преобразования Хафа с открытым исходным кодом в C ++.
  • http://www.vision.ime.usp.br/~edelgado/defesa/code/hough.html Преобразование Хафа для обнаружения эллипса, реализованное на C.
  • scikit-image Преобразование Хафа для линии, круга и эллипса, реализованное на Python.
  • [1] Преобразование Хафа на основе вейвлет-фильтрации для обнаружения круга определенного радиуса. (Код Matlab.)
  • Преобразование Хафа для линий с использованием MATLAB
  • Преобразование Хафа для кругов в MATLAB
  • KHT - исходный код C ++.
  • 3DKHT - исходный код и наборы данных C ++.