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
Hello.
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);
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
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!

  0 Comments

Sign in to comment.

Accepted Answer

jiro
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.

  2 Comments

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.