how to get a line information after applying the houghlines

2 次查看(过去 30 天)
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!

采纳的回答

Jiro Doke
Jiro Doke 2016-10-25
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.

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by