Image Processing Toolbox User's Guide |
Extract line segments based on the Hough transform
Syntax
Description
lines = houghlines(BW,theta, rho, peaks)
extracts line segments in the image BW
associated with particular bins in a Hough transform. theta and rho are vectors returned by function hough
. peaks
is a matrix returned by the houghpeaks
function that contains the row and column coordinates of the Hough transform bins to use in searching for line segments.
The houghlines
function returns lines
, a structure array whose length equals the number of merged line segments found. Each element of the structure array has these fields:
lines = houghlines(...,param1,val1,param2,val2)
specifies parameter/value pairs, listed in the following table. Parameter names can be abbreviated, and case does not matter.
Class Support
BW
can be logical or numeric and it must be real, 2-D, and nonsparse.
Example
This example searches for line segments in an image and highlights the longest segment.
I = imread('circuit.tif'); rotI = imrotate(I,33,'crop'); BW = edge(rotI,'canny'); [H,T,R] = hough(BW); imshow(H,[],'XData',T,'YData',R,'InitialMagnification','fit'); xlabel('\theta'), ylabel('\rho'); axis on, axis normal, hold on; P = houghpeaks(H,5,'threshold',ceil(0.3*max(H(:)))); x = T(P(:,2)); y = R(P(:,1)); plot(x,y,'s','color','white'); % Find lines and plot them 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 % highlight the longest line segment plot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','cyan');
See also
hough | houghpeaks |
© 1994-2005 The MathWorks, Inc.