how to get a line information after applying the houghlines
2 views (last 30 days)
Show older comments
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
Accepted Answer
Jiro Doke
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.
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!