how to measure distance between points in X using interactive mouse

Hello
I have used edge function to detect the edge of a shape in matlab, now I want to create a GUI where as someone moves their mouse over the image it draws a horizontal line between the points and measures the distance in X between the points, then when the mouse is clicked saves the distance.
Is this possible?
James

Réponses (2)

Thomas
Thomas le 24 Sep 2012

5 commentaires

Thank you for this, yes this gets the information but I was wondering is there a way to get it to trace the line with mouse movement, almost as though it snaps to the next point as you push your mouse up the screen
Thomas
Thomas le 24 Sep 2012
Modifié(e) : Thomas le 24 Sep 2012
try
ii=imread('name_img.jpg');
imshow(ii);
h=ginput(2) % click two point on image
distance_betwn_mouse_clicks=pdist(h)
or
distance_betwn_mouse_clicks=sqrt((h(2)-h(1))^2+(h(4)-h(3))^2)
instead of imdistline
I think you meant imshow() instead of imread() because the image must be displayed for you to click on it. I don't have distp (base MATLAB or Image Processing Toolbox). You can use hypot() in that case.
Thanks Image analyst..
Thanks Thomas.
It was great.

Connectez-vous pour commenter.

Image Analyst
Image Analyst le 24 Sep 2012
Try imfreehand() if you want to trace an arbitrary path. It doesn't "snap" to the next point though, like Photoshop's magnetic lasoo.

Catégories

Commenté :

le 12 Mar 2019

Community Treasure Hunt

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

Start Hunting!

Translated by