Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
S[R, C] — входное полутоновое изображение
NLINES — количество строк на изображении
NPIXELS — количество пикселов в строке изображения
A[DQ, THETAQ] — аккумуляторный массив
DQ — дискретное расстояние от прямой до начала координат
THETAQ — дискретный угол между направлением строк и перпундикуляром к прямой, опущенным их начала координат
procedure accumulate_line(S, A);
{
A := 0;
PTLIST := 0;
for R := 1 to NLINES
for C := 1 to NPIXELS
{
DR := row_gradient(S, R, C);
DC := col_gradient(S, R, C);
GMAG := gradient(DR, DC);
if GMAG > gradient_treshold
{
THETA := atan2(DR, DC);
THETAQ := quantize_angle(THETA);
D := abs(C * cos(THETAQ) — R * sin(THETAQ));
DQ := quantize_distance(D);
A[DQ, THETAQ] := A[DQ, THETAQ] + GMAG;
PTLIST(DQ, THETAQ) := append(PTLIST(DW, THETAQ), [R, C]);
}
}
}
Алгоритм Хафа для обнаружения произвольных кривых на изображениях