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

Descripción

ejemplo

[H,theta,rho] = hough(BW) computa la transformada 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 a 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 transformada 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 transformada de Hough 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értalo en una imagen en escala de grises.

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

Extraiga los bordes.

BW = edge(I,'canny');

Calcule la transformada de Hough.

[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értalo en escala de grises.

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

Extraiga los bordes.

BW = edge(I,'canny');

Calcule la transformada de Hough en un rango limitado de ángulos.

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

Muestre la transformada de 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 real, 2-D, lógica o numérica 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 de argumentos separados por comas opcionales. es el nombre del argumento y es el valor correspondiente. deben aparecer dentro de las cotizaciones.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 Hough transformar bins a lo largo del eje, especificado como el par separado por comas que consta de y un real, escalar numérico entre y, exclusivo.rho'RhoResolution'0norm(size(BW))

Tipos de datos: double

valor para la columna correspondiente de la matriz de salida, especificada como el par separado por comas que consta de y un vector real, numérico 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, por tamaño.nrhontheta Las filas y columnas corresponden a y valores.rhotheta Para obtener más información, consulte.Algoritmos

Ángulo 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, devuelta como una matriz numérica de clase.double Para obtener más información, consulte.Algoritmos

Algoritmos

La transformada 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 a 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 detheta 90°θ<90°. El ángulo de la línea en sí es θ+90°, también medido en sentido horario con respecto al eje positivo.x

El SHT es una matriz de espacio de parámetros cuyas filas y columnas corresponden a y valores respectivamente.rhotheta Los elementos en el SHT representan las células del acumulador. Inicialmente, el valor de cada celda es cero. Entonces, para cada punto que no sea de fondo en la imagen, se calcula para cada uno. 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 en el-plano se encuentran en la línea especificada por y.QSHT(r,c)Qxytheta(c)rho(r) Los valores de pico en el SHT representan líneas potenciales en la imagen de entrada.

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

Y. valores van desde a, dónde.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