Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

hough

Transformación de Hough

Descripción

ejemplo

[H,theta,rho] = hough(BW) calcula la transformación de hough estándar (SHT) de la imagen binaria.BW La función está diseñada para detectar líneas.hough La función utiliza la representación paramétrica de una línea: .rho = x*cos(theta) + y*sin(theta) La función devuelve , la distancia desde el origen hasta la línea a lo largo de un vector perpendicular a la línea, y , el ángulo en grados entre el eje y este vector.rhothetax La función también devuelve la transformación de hough estándar, , que es una matriz de espacio de parámetros cuyas filas y columnas corresponden y valores respectivamente.Hrhotheta Para obtener más información, consulte .Algoritmos

ejemplo

[H,theta,rho] = hough(BW,Name,Value,...) calcula la transformación de punto estándar (SHT) de la imagen binaria, donde los parámetros con nombre afectan al cálculo.BW

Ejemplos

contraer todo

Lea una imagen y conviértala en una imagen en escala de grises.

RGB = imread('gantrycrane.png'); I  = rgb2gray(RGB);

Extraer aristas.

BW = edge(I,'canny');

Calcular la transformación Deugh.

[H,T,R] = hough(BW,'RhoResolution',0.5,'Theta',-90:0.5:89);

Muestre la imagen original y la matriz Hough.

subplot(2,1,1); imshow(RGB); title('gantrycrane.png'); subplot(2,1,2); imshow(imadjust(rescale(H)),'XData',T,'YData',R,...       'InitialMagnification','fit'); title('Hough transform of gantrycrane.png'); xlabel('\theta'), ylabel('\rho'); axis on, axis normal, hold on; colormap(gca,hot);

Lea una imagen y conviértala a escala de grises.

RGB = imread('gantrycrane.png'); I  = rgb2gray(RGB);

Extraer aristas.

BW = edge(I,'canny');

Calcula la transformación Hough en un rango limitado de ángulos.

[H,T,R] = hough(BW,'Theta',44:0.5:46);

Muestre la transformación Hough.

figure imshow(imadjust(rescale(H)),'XData',T,'YData',R,...    'InitialMagnification','fit'); title('Limited Theta Range Hough Transform of Gantrycrane Image'); xlabel('\theta') ylabel('\rho'); axis on, axis normal; colormap(gca,hot)

Argumentos de entrada

contraer todo

Imagen binaria, especificada como una matriz lógica o numérica real, 2-D, no dispersa.

Ejemplo: [H,T,R] = hough(BW);

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Argumentos de par nombre-valor

Especifique pares opcionales separados por comas de argumentos. es el nombre del argumento y es el valor correspondiente. deben aparecer entre comillas.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como .Name1,Value1,...,NameN,ValueN

Ejemplo: [H,T,R] = hough(BW,'RhoResolution',0.5,'Theta',0.5);

Espaciado de las ubicaciones de transformación de hough a lo largo del eje, especificado como el par separado por comas que consta de y un escalar numérico real entre y , exclusivo.rho'RhoResolution'0norm(size(BW))

Tipos de datos: double

valor para la columna correspondiente de la matriz de salida, especificado como el par separado por comas que consta de un vector numérico real dentro del rango.ThetaH'Theta'[-90, 90)

Tipos de datos: double

Argumentos de salida

contraer todo

Matriz de transformación Hough, devuelta como una matriz numérica, de tamaño por.nrhontheta Las filas y columnas corresponden a y valores.rhotheta Para obtener más información, consulte .Algoritmos

Angulo en grados entre el eje y el vector, devuelto como una matriz numérica de clase .xrhodouble Para obtener más información, consulte .Algoritmos

Distancia desde el origen hasta la línea a lo largo de un vector perpendicular a la línea, devuelto como una matriz numérica de clase .double Para obtener más información, consulte .Algoritmos

Algoritmos

La transformación de hough estándar (SHT) utiliza la representación paramétrica de una línea:

rho = x*cos(theta) + y*sin(theta)

La variable es la distancia desde el origen hasta la línea a lo largo de un vector perpendicular a la línea. es el ángulo de la proyección perpendicular desde el origen hasta la línea medida en grados en el sentido de las agujas del reloj desde el eje positivo.rhothetax El rango de estheta 90°θ<90°. El ángulo de la línea en sí es θ+90°, también se mide en el sentido de las agujas del reloj con respecto al eje positivo.x

El SHT es una matriz de espacio de parámetros cuyas filas y columnas corresponden y valores respectivamente.rhotheta Los elementos del SHT representan celdas de acumulador. Inicialmente, el valor de cada celda es cero. A continuación, para cada punto que no sea de fondo de la imagen, se calcula para cada archivo . se redondea a la fila permitida más cercana en SHT.rhothetarho Esa celda del acumulador se incrementa. Al final de este procedimiento, un valor de in significa que los puntos del plano se encuentran en la línea especificada por y .QSHT(r,c)Qxytheta(c)rho(r) Los valores máximos del SHT representan líneas potenciales en la imagen de entrada.

La matriz de transformación Hough, , es -por- donde:Hnrhontheta

Y. valores van desde hasta , donde .nrho = 2*(ceil(D/RhoResolution)) + 1
D = sqrt((numRowsInBW - 1)^2 + (numColsInBW - 1)^2)
rho-diagonaldiagonal
diagonal = RhoResolution*ceil(D/RhoResolution)

ntheta = length(theta)

Capacidades ampliadas

Introducido antes de R2006a