MATLAB: Line detection in an image

image processingImage Processing Toolbox

My image is a square. What i want here is: select 4 points on the upper horizontal boundary in the square and along those 4 points draw a straight line. (eventually, repeat this for all 4 sides). What functions should i use?
When selecting points i can use ginput(4) i guess, but i doubt houghline is the function for drawing straight line along selected points? Any suggestions?

Best Answer

To plot the line in the overlay, you can use line()
line([x1 x2], [y1 y2], 'Color', 'r');
To "burn" the line into the image, you can either use normal indexing if the line is along rows and columns
grayImage(row1:row2, col) = 255; % or whatever intensity you want
or you can use imline() if the points are not in the same row or column, as the attached demo illustrates.