Преобразование Хафа
[ вычисляет стандартное преобразование потока (SHT) двоичного изображения H,theta,rho] = hough(BW)BW. hough функция предназначена для обнаружения линий. Функция использует параметрическое представление линии: rho = x*cos(theta) + y*sin(theta). Функция возвращает rho, расстояние от начала до линии вдоль вектора, перпендикулярного линии, и theta, угол в градусах между осью X и этим вектором. Функция также возвращает SHT, H, которая является матрицей пространства параметров, строки и столбцы которой соответствуют значениям rho и theta соответственно. Дополнительные сведения см. в разделе Алгоритмы.
Стандартное преобразование потока (SHT) использует параметрическое представление линии:
rho = x*cos(theta) + y*sin(theta)
Переменная rho - это расстояние от начала до прямой вдоль вектора, перпендикулярного прямой. theta - угол перпендикулярной проекции от начала к линии, измеренный в градусах по часовой стрелке от положительной оси X. Диапазон тета - -90 ° ≤ Угол самой линии - θ + 90 °, также измеряемые по часовой стрелке относительно положительной оси X.

SHT - матрица пространства параметров, строки и столбцы которой соответствуют значениям rho и theta соответственно. Элементы в SHT представляют собой аккумуляторные ячейки. Первоначально значение в каждой ячейке равно нулю. Затем для каждой не фоновой точки изображения вычисляется rho для каждой теты. rho округляется до ближайшей разрешенной строки в SHT. Эта аккумуляторная ячейка увеличивается. В конце этой процедуры значение Q в SHT (r, c) означает, что точки Q в плоскости xy лежат на линии, заданной тета (c) и ро (r). Пиковые значения в SHT представляют потенциальные линии во входном изображении.
Матрица преобразования Хафа, H, является nrho-by-ntheta, где:
nrho = 2*(ceil(D/RhoResolution)) + 1, и
D = sqrt((numRowsInBW - 1)^2 + (numColsInBW - 1)^2).
rho значения находятся в диапазоне от -diagonal кому diagonal, где
diagonal = RhoResolution*ceil(D/RhoResolution).
ntheta = length(theta)