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.

houghlines

Extrae segmentos de línea basados en la transformada de Hough

Descripción

ejemplo

lines = houghlines(BW,theta,rho,peaks) Extrae segmentos de línea de la imagen asociada con bins concretos en una transformación Hough. y son vectores devueltos por función. es una matriz devuelta por la función que contiene las coordenadas de fila y columna de las bandejas de transformación de Hough que se utilizarán en la búsqueda de segmentos de línea.BWthetarhohoughpeakshoughpeaks El valor devuelto es una matriz de estructura cuya longitud es igual al número de segmentos de línea combinados encontrados.lines

ejemplo

lines = houghlines(___,Name,Value,...) extrae los segmentos de línea de la imagen, donde los parámetros con nombre afectan a la operación.BW

Ejemplos

contraer todo

Leer la imagen en el espacio de trabajo.

I  = imread('circuit.tif');

Gire la imagen.

rotI = imrotate(I,33,'crop');

Cree una imagen binaria.

BW = edge(rotI,'canny');

Crea la transformada de Hough usando la imagen binaria.

[H,T,R] = hough(BW); imshow(H,[],'XData',T,'YData',R,...             'InitialMagnification','fit'); xlabel('\theta'), ylabel('\rho'); axis on, axis normal, hold on;

Encuentra picos en la transformada de Hough de la imagen.

P  = houghpeaks(H,5,'threshold',ceil(0.3*max(H(:)))); x = T(P(:,2)); y = R(P(:,1)); plot(x,y,'s','color','white');

Buscar líneas y trazar.

lines = houghlines(BW,T,R,P,'FillGap',5,'MinLength',7); figure, imshow(rotI), hold on max_len = 0; for k = 1:length(lines)    xy = [lines(k).point1; lines(k).point2];    plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');     % Plot beginnings and ends of lines    plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');    plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');     % Determine the endpoints of the longest line segment    len = norm(lines(k).point1 - lines(k).point2);    if ( len > max_len)       max_len = len;       xy_long = xy;    end end

Resalte el segmento de línea más largo coloreando cian.

plot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','cyan');

Argumentos de entrada

contraer todo

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

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

Ángulo de rotación de línea en radianes, especificado como una matriz lógica o numérica real, 2-D, no dispersa.

Tipos de datos: double

Distancia desde el origen de la coordenada, especificada como una matriz lógica o numérica real, 2-D, no dispersa. El origen de coordenadas es la esquina superior izquierda de la imagen (0,0).

Tipos de datos: double

Coordenadas de fila y columna de las bandejas de transformación de Hough, especificadas como una matriz numérica real y no dispersa.

Tipos de datos: double

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: lines = houghlines(BW,T,R,P,'FillGap',5,'MinLength',7);

Distancia entre dos segmentos de línea asociados a la misma papelera de transformación Hough, especificado como un escalar real positivo. Cuando la distancia entre los segmentos de línea es menor que el valor especificado, la función fusiona los segmentos de línea en un único segmento de línea.houghlines

Tipos de datos: double

Longitud de línea mínima, especificada como un escalar real positivo. descarta las líneas que son más cortas que el valor especificado.houghlines

Tipos de datos: double

Argumentos de salida

contraer todo

Líneas encontradas, devueltas como una matriz de estructura cuya longitud es igual al número de segmentos de línea combinados encontrados. Cada elemento de la matriz de estructura tiene estos campos:

Campo

Descripción

point1

Vector de dos elementos que especifica las coordenadas del punto final del segmento de línea[X Y]

point2

Vector de dos elementos que especifica las coordenadas del punto final del segmento de línea[X Y]

theta

Ángulo en grados de la papelera de transformación Hough

rho

posición del eje de la papelera de transformación Houghrho

Capacidades ampliadas

Consulte también

|

Introducido antes de R2006a