我搜索了每个地方,找到相机的焦距和后传感器的高度.但我没有得到任何具体细节.
我正在开发一个应用程序,它将从ios相机捕获的图像中可见的高度计算现实世界对象的实际高度.
到物体的距离(mm)=
焦距(mm)*物体的实际高度(mm)*图像高度(像素)------------------------------ ---------------------------------------------
对象高度(像素)*传感器高度(mm)
这里我将对象的值距离作为静态,像素的图像高度.现在我需要焦距和传感器高度来找出真实的物体高度.
提前致谢.bskania
iOS 设备在 JPEG EXIF 标头中提供相机的焦距值。它iPhoto在任何其他工具中都是可见的。
EXIF 标头键列表可以在CGImageProperties Reference中找到。
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);
Run Code Online (Sandbox Code Playgroud)
解决这个问题的方法。
首先获取一个现实世界的物体及其尺寸,即高度和宽度。(可乐棒的示例)现在拍摄您要测量的物体的快照。对于 iPhone 或 iPad,焦距固定为 25 毫米。现在,快速将要测量的对象框起来,并根据要测量的对象重新调整现实世界的可乐棒图像的大小。
使用方程
对象距离=(焦点*真实对象高度)/对象高度;
这里,real_object_height = 焦蔗高度;object_height = 可乐拐杖调整大小后的高度
并相应地使用方程测量物体的高度
框架高度 = ((obj_distance) * 测量对象高度_mm / 1000.0))/焦距;
width_of_frame = ((obj_distance) *measured_object_width_in_mm / 1000.0))/focal;
这样您就可以找出物体距离及其测量值。但是您需要两个静态数据,即您正在使用的相机的焦距和一个要比较的现实世界对象测量值。
谢谢,布斯卡尼亚。
| 归档时间: |
|
| 查看次数: |
5331 次 |
| 最近记录: |