Get Real distance value in an image.

After using the comparison method between two image, i want to detect the real length value of the red Lines. For example 5 cm. So i can know the distance the object has moved. Is it doable automatically ?

2 Comments

jonas
jonas on 9 Aug 2018
Edited: jonas on 10 Aug 2018
Obviously you are going to need the scale. One pixel can be 1 km long, for all we know.
Oh, I didnt see the scale. It blends in with the background. Will be almost impossible to use in my layman opinion.
For example in the photo attached, can i detect the scale automatically ?

Sign in to comment.

 Accepted Answer

See my spatial calibration demo. It can do what you want. Adapt it as necessary.

1 Comment

i already used it, but i don't know how to do it automatically, in your code the user draw a line to calibrate. in my case i want to detect the scale and auto-calibrate. I don't have the knowledge to do it, i am new to Matlab. Sorry for bothering.

Sign in to comment.

More Answers (1)

Florian Morsch
Florian Morsch on 10 Aug 2018
Edited: Florian Morsch on 10 Aug 2018
With a given reference its possible. Either calibrate your camera to that reference and dont move it afterwards or have a known scale on each image. That way you can tell what distance equals a pixel. Now you just have to count the pixels and can convert that to your distance.
And yes, you can do it automatically. If the camera is calibrated to the reference, just count the pixels and convert them. If you have a scale on each image, detect that scale, count the pixels and (since you know the real dimensions of the scale) use that to calculate the distance.

6 Comments

that what i am trying to do. i can do it manually to detect a scale and convert the distance to real value. I drew a scale(attachment) and it is present in the image But i am not able to detected automatically to count the number of pixel of the line.
What you are trying to do is definitely possible. You say that the scale is present in the figure, however not in the one you attached. However you insert this scale (can be a physical scale in the photo), make sure it is clearly distinguishable from the background so as to make the detection easier. Even better if it's a distinct color, like bright red on a dark background.
yes this is what i am doing. But how can i detect it in the photo ?
jonas
jonas on 10 Aug 2018
Edited: jonas on 10 Aug 2018
Going to need the photo (with the scale) to tell you that...
EDIT: Oh, I didnt see the scale at first. It blends in with the background. Will be almost impossible to use it in my layman opinion, unless you define it manually...
For example in the picture attached , are the condition right ? the scale is different color than the background, and also the camera is always at the same position and height.
Yes, now you should be able to detect the scale. If I were you, I would pass the question to Image Analyst, as he will be able to give you the best guidance on what method to use. If you can segment the red color, then it should be easy to find the axes and count the number of pixels in the y- and x-directions.
You can start by looking at the demo on color segmentation by IA.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!