MATLAB Answers

how to get a line information after applying the houghlines

58 views (last 30 days)
soyoung shin
soyoung shin on 25 Oct 2016
Commented: soyoung shin on 2 Nov 2016
I want to measure the terrain slope angle from the terrain image file. so I used some preferred code from the community. which is below.
I = imread('IMG.tif');
rotI = imrotate(I, 0 ,'crop');
BW = edge(rotI,'canny');
[H,T,R] = hough(BW);
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));
% 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 beginnings and ends of lines
% 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;
so, I got some lines on the image. however, how to measure the drawn lines information? is it possible to get such information, slope angle, from the lines?
Please let me know!


Sign in to comment.

Accepted Answer

jiro on 25 Oct 2016
In your example, the variable lines has the information about the straight lines. Double-click the variable in the Workspace. You will see that it has the coordinates of the end points of the lines ( point1 and point2 ). Also, theta gives you the angle information. 90 - theta is the actual angle of the lines, measured counter-clockwise from +x axis.


soyoung shin
soyoung shin on 2 Nov 2016
Can I display the lines information on the figure windows?

Sign in to comment.

More Answers (0)

Sign in to answer this question.