如何找出相机在ios中的焦距和传感器高度是多less?

我已经search了每一处寻找相机的焦距和它的后面传感器高度的地方。 但是我没有得到任何具体的细节。

我正在开发一个应用程序,它将从ios摄像头捕获的图像中的可见高度计算真实世界对象的实际高度。

到物体的距离(mm)=

焦距(mm)*物体的实际高度(mm)*图像高度(像素)—————————— ———————————————
物体高度(像素)*传感器高度(mm)

在这里我有值的距离对象作为静态,像素的图像高度。 现在我需要焦距和传感器高度来找出真实的物体高度。

提前致谢。 bskania

EXIF头

iOS设备在JPEG EXIF标头中提供相机的焦距值。 它可以在iPhoto看到,也可以在任何其他工具中看到。

以编程方式检索它的选项

  • Apple技术问答QA1622讨论ALAssetsLibrary
  • 访问图像属性使用CGImageSourceRef

EXIF标题键的列表可以在CGImageProperties参考中find。

 NSURL *imageFileURL = [NSURL fileURLWithPath:...]; CGImageSourceRef imageSource = CGImageSourceCreateWithURL((CFURLRef)imageFileURL, NULL); if (imageSource == NULL) { // Error loading image ... return; } NSDictionary *options = @{kCGImageSourceShouldCache, @NO}; CFDictionaryRef imageProperties = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, (CFDictionaryRef)options); if (imageProperties) { NSNumber *width = (NSNumber *)CFDictionaryGetValue(imageProperties, kCGImagePropertyPixelWidth); NSNumber *height = (NSNumber *)CFDictionaryGetValue(imageProperties, kCGImagePropertyPixelHeight); NSLog(@"Image dimensions: %@ x %@ px", width, height); CFRelease(imageProperties); } CFRelease(imageSource); 

解决这个问题的方法。

首先拿一个现实世界的物体和它的尺寸,即高度和宽度(焦炭的例子)现在抓住你想要测量的物体。 对于iPhone或iPad,焦距固定为25mm。 现在将要测量的对象框架化,然后根据要测量的对象重新调整真实世界焦炭图像的大小。

使用等式

object_distance =(focal * real_object_height)/ object_height;

这里,real_object_height =焦炭高度; 和object_height =焦炭重新调整高度

并使用等式来相应地测量物体的高度

height_of_frame =((obj_distance)* measured_object_height_in_mm / 1000.0))/ focal;

width_of_frame =((obj_distance)* measured_object_width_in_mm / 1000.0))/ focal;

这样你可以找出对象的距离和它的措施。 但是您需要两个静态数据,即您正在使用的相机焦距和一个真实世界物体测量值进行比较。

谢谢,bskania。