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

时间:2012-11-02 07:15:48

标签: ios

我搜索了每个地方以找到相机的焦距及其后传感器高度。 但我没有得到任何具体细节。

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

与物体的距离(mm)=

焦距(mm)*物体的实际高度(mm)*图像高度(像素)--------------------------- ------------------------------------------------ <无线电通信/>              物体高度(像素)*传感器高度(mm)

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

提前致谢。 bskania

2 个答案:

答案 0 :(得分:4)

EXIF标题

iOS设备在JPEG EXIF标题中提供相机的焦距值。它在iPhoto和任何其他工具中都可见。

以编程方式检索

的选项

可以在CGImageProperties Reference

中找到EXIF标题键列表
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);

答案 1 :(得分:1)

解决此问题的方法。

首先拍摄一个真实物体及其尺寸,即高度和宽度。(焦炭手杖的例子) 现在快速捕捉要测量的对象。 对于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。