Line detection in an image

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?

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

3 Comments

@ Image Analyst- line() works well. Thank you so much for your rapid response. Really appreciate it.
If i want to register images,is there any in-built function in MatLab just like cpselect for line() function ?
I don't know what that last sentence means. Yes, there is an imregister() function, and related functions like imwarp(). Is that what you're looking for?
@ Image Analyst- sorry to confuse you. But thank you so much for your response. Really appreciate your effort.

Sign in to comment.

More Answers (0)

Categories

Asked:

on 28 Feb 2015

Commented:

on 28 Feb 2015

Community Treasure Hunt

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

Start Hunting!