MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

image height

Asked by Sivakumaran Chandrasekaran on 12 May 2012
Latest activity Commented on by Image Analyst on 9 Jan 2014
` can we able to measure the height of a person by taking his image and  processing through MATLAB.`

Products

Answer by Image Analyst on 12 May 2012

Yes, if you know how many pixels correspond to an inch or centimeter, which you can know if you've imaged an object of known height first.

Thanks Image Analyst. impixelinfo command will gives the info about pixels.
But, how to calculate how many pixels for 1 cm

Walter Roberson on 12 May 2012

The number of pixels per cm must be known by external information, or you must image an item of known height and measure the number of pixels it occupies in the image.

Caution: measuring an item of known height only works if the people are always at exactly the same distance from the camera. If they are variable distances but each distance is known then you can adjust using trigonometry, but if you do not know the height and you do not know the distance from the camera then you cannot calculate the height.

Image Analyst on 12 May 2012

Siva, you can use improfile() or ginput(2) to click two points on the image. Calculate the distance in pixels and call it pixelDistance. Then use inputdlg() to ask the user how many inches or centimeters that distance is, call that number realWorldDistance. Then you can calculate
calibrationFactor = realWorldDistance / pixelDistance;
Then whenever you have a pixel distance, multiply it by calibrationFactor to get the distance in real world units, or multiply by calibrationFactor^2 to get an area in real world units.

Answer by Sivakumaran Chandrasekaran on 12 May 2012

Thanks image analyst and Walter..

I have one more doubts.

1. whats the unit of Euclidean distance.

Jakob Sørensen on 12 May 2012

Standard SI unit would be meters. But depends on what units you use to calculate it...

Walter Roberson on 12 May 2012

If A and B are in unit U, then A^2 and B^2 would be in unit U^2, and so A^2+B^2 would be in unit U^2, and sqrt(A^2+B^2) would be in unit sqrt(U^2) which would be unit U.

Thus, as long as the units of the components are the same, the Euclidean distance will be in the same unit as the components are.

Answer by sara on 9 Jan 2014

How do I measure a distance in real world with a picture in matlab?

1 Comment

Image Analyst on 9 Jan 2014

See my demo, attached.