在objective-c中检测图像的拍摄位置(位置)

Posted

技术标签:

【中文标题】在objective-c中检测图像的拍摄位置(位置)【英文标题】:Detect where the image was taken (location) in objective-c 【发布时间】:2012-09-04 06:50:57 【问题描述】:

我正在开展一个项目,该项目将要求用户从相机或照片库中拍摄图像,然后获取拍摄图像的位置。我已经使用 UIImagePickerController 来获取图像,我需要知道检测当前位置(如果图像是从相机拍摄的)或拍摄图像的位置(如果图像是从照片库中选择的)

任何人都可以帮助或指导我获得有用的教程吗?

干杯

【问题讨论】:

检查这可能会有所帮助:***.com/questions/3991673/… jomnius.blogspot.ch/2011/01/… 【参考方案1】:
NSData* jpegData =  UIImageJPEGRepresentation(pImage);

    CGImageSourceRef imageData= CGImageSourceCreateWithData((CFDataRef)jpegData, NULL);
    NSDictionary *metadata = (NSDictionary *) CGImageSourceCopyPropertiesAtIndex(imageData, 0, NULL);

这将提供带有 EXIF 区域的字典。您感兴趣的是 GPS 数据。您使用以下方法提取它们:

NSDictionary *exifGPSDictionary = [[[metadata objectForKey:(NSString *)kCGImagePropertyGPSDictionary]mutableCopy]autorelease];
   // you don't have to autorelease when you use ARC

此 exifGPSDictionary 保存您使用键 kCGImagePropertyGPSLatitudekCGImagePropertyGPSLongitude 查找的值。然后您使用objectForKey 获取它们。

【讨论】:

嗯,这个解决方案需要特定版本的 ios。如果您出于任何原因需要向下兼容,那么您可能需要查看code.google.com/p/iphone-exif。

以上是关于在objective-c中检测图像的拍摄位置(位置)的主要内容,如果未能解决你的问题,请参考以下文章

获取我在 photoLibrary iOS Objective-c 中选择的视频的位置元数据

机器学习(ML)十六之目标检测基础

在开放 CV 中使用单应性从同一场景的相同相机拍摄的两个图像之间的视图映射,除了相机位置不平行

IOS/Objective-C:检测 UIVIew 上的滑动和屏幕相同位置的按钮触摸

如何在 Swift 3/4 中使用相机获取位置?

检测车道线——2.选择兴趣区域 Region Masking