Main Content

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

Extraer segmentos de línea basados en la transformación Hough

Descripción

ejemplo

lines = houghlines(BW,theta,rho,peaks) extrae segmentos de línea en la imagen asociada con ubicaciones particulares en una transformación Hough. y son vectores devueltos por la función . es una matriz devuelta por la función que contiene las coordenadas de fila y columna de las ubicaciones de transformación 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 segmentos de línea en la imagen, donde los parámetros con nombre afectan a la operación.BW

Ejemplos

contraer todo

Lea 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');

Cree la transformación Hough utilizando 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 transformación 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');

Encuentra líneas y trazalas.

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 coloreándolo cian.

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

Argumentos de entrada

contraer todo

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

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

Angulo 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 la coordenada es la esquina superior izquierda de la imagen (0,0).

Tipos de datos: double

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

Tipos de datos: double

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

Distancia entre dos segmentos de línea asociados con la misma ubicación de transformación Hough, especificada 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 mínima de línea, 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 structure 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

Angulo en grados de la bandeja de transformación Hough

rho

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

Capacidades ampliadas

Consulte también

|

Introducido antes de R2006a