MATLAB Answers

0

Get Real distance value in an image.

Asked by Theodor Al Saify on 9 Aug 2018
Latest activity Commented on by jonas
on 13 Aug 2018

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

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.

2 Answers

Answer by Image Analyst
on 12 Aug 2018
 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.


Answer by Florian Morsch on 10 Aug 2018
Edited by 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

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.

<http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862>

Sign in to comment.