Edit: Sorry for late Edit, Without two parameter you cannot calculate it, So first need to fill user Camera height from ground.
I have check a number of solutions but none of them helpful!
I know that Working Distance = (Sensor Height + Subject Height) * Focal Length / Sensor Height
and
distance to object (mm) = focal length (mm) * real height of the object (mm) * image height (pixels)
----------------------------------------------------------------
object height (pixels) * sensor height (mm)
And I want to get distance from this:
Image Formation by Lenses and the Eye
Hello I get the following info using image Exif ALAssetsLibrary
And I got following meta data :
Save image metadata.
{
DPIHeight = 72;
DPIWidth = 72;
FaceRegions = {
Regions = {
HeightAppliedTo = 2448;
RegionList = (
{
AngleInfoRoll = 270;
AngleInfoYaw = 0;
ConfidenceLevel = 376;
FaceID = 1;
Height = "0.1413399";
Timestamp = 5996166864910;
Type = Face;
Width = "0.1060049";
X = "0.3560049";
Y = "0.4746732";
}
);
WidthAppliedTo = 3264;
};
};
Orientation = 6;
"{Exif}" = {
ApertureValue = "2.526068811667587";
BrightnessValue = "1.291629806962232";
ColorSpace = 1;
DateTimeDigitized = "2014:03:25 15:43:36";
DateTimeOriginal = "2014:03:25 15:43:36";
ExposureMode = 0;
ExposureProgram = 2;
ExposureTime = "0.05";
FNumber = "2.4";
Flash = 24;
FocalLenIn35mmFilm = 33;
FocalLength = "4.12";
ISOSpeedRatings = (
160
);
LensMake = Apple;
LensModel = "iPhone 5 back camera 4.12mm f/2.4";
LensSpecification = (
"4.12",
"4.12",
"2.4",
"2.4"
);
MeteringMode = 5;
PixelXDimension = 3264;
PixelYDimension = 2448;
SceneType = 1;
SensingMethod = 2;
ShutterSpeedValue = "4.321956949076723";
SubjectArea = (
1631,
1223,
1795,
1077
);
SubsecTimeDigitized = 261;
SubsecTimeOriginal = 261;
UserComment = hoge;
WhiteBalance = 0;
};
"{GPS}" = {
Altitude = "196.008";
AltitudeRef = 0;
DateStamp = "2014:03:25";
Latitude = "28.61772";
LatitudeRef = N;
Longitude = "77.38891";
LongitudeRef = E;
TimeStamp = "10:13:37.439000";
};
"{MakerApple}" = {
1 = 0;
3 = {
epoch = 0;
flags = 1;
timescale = 1000000000;
value = 249840592070541;
};
4 = 0;
5 = 179;
6 = 139;
7 = 1;
};
"{TIFF}" = {
DateTime = "2014:03:25 15:43:36";
Make = Apple;
Model = "iPhone 5";
Software = "7.0.6";
XResolution = 72;
YResolution = 72;
};
}
I need to calculate the distance of the object from the camera, using the above details; using iphone4s,iphone5, or iphone5s. Is it possible?
Modified Need to know formula used by this app any idea:
Need to know any method
http://www.youtube.com/watch?v=eCStIagorx8
how this App working ??? All Help are welcome
@iphonemaclover. As many people have pointed out there's insufficient information to calculate this purely using trigonometry. However, depending on how accurate you need to be, or what it is you're trying to measure and other data you can expect to recover from an iphone and/or you're willing to make some assumptions, it is possible to make some inroads.
a) +1 to Martin R, if you assume a flat earth, a phone height (which as per the app you quoted) a user could update for calibration purposes, can recover pitch information and know where a point on the ground at the base of your object is then this is simple trig. Once there's a estimate for the distance and assuming the thing you're measuring is close to vertical (or sits at a known angle) then its height can also be calculated.
b) Your exif file contains face region information. If you're interested in people and are happy to make an assumption that they're an adult then you could use an average head size assumption to estimate distance using the method you've outlined already.
c) If you can recover a series of images and camera positions and the camera / object positions vary then I believe that 3d information can be recovered using projective geometry.