首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用没有AVDepthData的iPhone 7+获取媒体

使用没有AVDepthData的iPhone 7+获取媒体
EN

Stack Overflow用户
提问于 2017-06-28 18:24:25
回答 3查看 1.2K关注 0票数 2

在不拥有iPhone 7+的情况下,为iPhone构建应用程序的最佳方法是什么?

深度数据只能在带有双镜头相机的iPhone 7+上拍摄。但是我想任何iOS11设备都可以处理深度数据,只要它能够访问包含它的照片。我找不到任何这样的媒体资源,从苹果或其他各方在线。有人有吗?还是有更好的方法?

我试过查看iPhone 7+模拟器库,但是模拟器崩溃了,因为它不支持深度演示应用程序使用的金属。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-07-14 01:36:34

您将需要有人(像我)有一个iPhone 7+与iOS 11在上面,以发送给您的图像。

访问iOS 11上的Safari链接,并点击more... -> Save Image

http://hellocamera.co/img/depth-photo.heic

注意:我从这张图像中删除了gps数据。

票数 2
EN

Stack Overflow用户

发布于 2017-10-24 19:32:21

虽然这是一个非琐碎的任务,但是可以生成AVDepthData并将其添加到您自己的映像中。

  1. 创建一个深度/差异字典,就像CGImageSource.h CGImageSourceCopyAuxiliaryDataInfoAtIndex中记录的那样--但是,下面是更详细的信息:

Key kCGImageAuxiliaryDataInfoData - (CFDataRef) -深度数据

只包含二进制像素缓冲区。它是通过读取CVPixelBufferLockBaseAddress中的指针从像素缓冲区中提取的数据。您可以使用一种受支持类型的格式创建CVPixelBuffer:

  • kCVPixelFormatType_DisparityFloat16 = 'hdis',/* IEEE754 754-2008 binary16 (半浮点数),描述两幅图像比较时的归一化偏移。单位为1/米:( pixelShift / (pixelFocalLength * baselineInMeters) ) */
  • kCVPixelFormatType_DisparityFloat32 = 'fdis',/* IEEE754 754-2008 binary32浮点数,描述比较两幅图像时的归一化偏移。单位为1/米:( pixelShift / (pixelFocalLength * baselineInMeters) ) */
  • kCVPixelFormatType_DepthFloat16 = 'hdep',/* in 754-2008 binary16 (半浮子),描述深度(与物体的距离),以米*/
  • kCVPixelFormatType_DepthFloat32 = 'fdep',/* in 754-2008 binary32浮点数,描述深度(与物体的距离),以米*/

若要将任意灰度图像转换为假深度缓冲区,则需要根据目标格式将灰度像素值(0=black到1=white、zNear到zFar等)转换为米或1/米。把它们变成正确的浮点格式,这取决于你从哪里得到的。

Key kCGImageAuxiliaryDataInfoDataDescription - (CFDictionary) -深度数据描述

告诉您如何为我们提供的缓冲区解释缓冲区,或者告诉我们如何解释您给我们的缓冲区:

  • kCGImagePropertyPixelFormat是核心视频/CVPixelBuffer.h深度/视差格式之一。
  • kCGImagePropertyWidth/高度是像素尺寸
  • kCGImagePropertyBytesPerRow是正确的它在锡上说的话

kCGImageAuxiliaryDataInfoMetadata - (CGImageMetadataRef) -元数据

此值是可选的。

  1. 使用传递上面创建的字典的AVDepthData创建init(fromDictionaryRepresentation:[AnyHashable : Any])
  2. 使用ImageI/O创建图像: //创建图像目的地(未显示)/向目标CGImageDestinationAddImage(cgImageDestination,渲染create (附件)添加一图像)(使用AVDepthData获得辅助数据字典:NSString? //向图像辅助机数据添加辅助码元数据,如果CGImageDestinationFinalize(cgImageDestination)(机)机/机码数据作为辅助机数据,则CGImageDestinationFinalize(cgImageDestination)//机机/机辅助机数据/将辅助机机数据添加到图像目标机目标机的图像中。
票数 5
EN

Stack Overflow用户

发布于 2017-06-30 17:03:54

我想你可以在任何iOS设备上处理照片的深度数据。你所需要的只是iPhone 7+拍摄的照片样本。这里就是其中的几个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44809961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档