# Drawing a white line on an image using (rho, theta).

9 views (last 30 days)
Ba Ba Black Sheep! on 19 Jun 2017
I want to draw a line on the following image using (| |rho , theta ) of the detected line using the Hough transformation. .
expected output .
What is wrong in the following code?
It's not being able to display the line.
maxPeaks = 1;
fillgap = 500;
minline = 7;
binary_image = edge(input_image,'canny');
[H,T,R] = hough(binary_image);
threshPeaks = ceil(0.3*max(H(:)));
P = houghpeaks(H, maxPeaks, 'threshold', threshPeaks);
hlines = houghlines(binary_image, T, R, P, 'FillGap', fillgap, 'MinLength', minline);
h_line = hlines(1);
rho = h_line.rho;
theta = h_line.theta;
imshow(input_image);
hold on;
x = h_line.point1(1):h_line.point2(1);
y = (rho - x* cos(theta) )/ sin(theta);
plot(x,y);
##### 2 CommentsShowHide 1 older comment
Ba Ba Black Sheep! on 20 Jun 2017
This is incorrect answer. Using sind and cosd solved my problem.

Julian Hapke on 20 Jun 2017
My comment was the answer, so to stick to the structure of this forum:
Your calculation of x and y yields to wrong values. If you use the end points of the houghlines directly
hline = plot([h_line.point1(1) h_line.point2(1)],[h_line.point1(2) h_line.point2(2)],'w')
you get the line you showed in your "expected output"
Please mark this as answer if it fits your needs.