什么是最好的方式来构建AVDepthData的应用程序没有拥有iPhone 7 +?获取媒体与AVDepthData没有iPhone 7+
深度数据只能在具有双镜头相机的iPhone 7+上捕捉。但我想任何iOS11设备都可以处理深度数据,只要它能够访问包含它的照片即可。我无法从Apple或其他在线人士那里找到任何此类媒体资源。有人有一些?或者,还有更好的方法?
我试过看看iPhone 7+模拟器库,但模拟器崩溃,因为它不支持深度演示应用程序正在使用的金属。
什么是最好的方式来构建AVDepthData的应用程序没有拥有iPhone 7 +?获取媒体与AVDepthData没有iPhone 7+
深度数据只能在具有双镜头相机的iPhone 7+上捕捉。但我想任何iOS11设备都可以处理深度数据,只要它能够访问包含它的照片即可。我无法从Apple或其他在线人士那里找到任何此类媒体资源。有人有一些?或者,还有更好的方法?
我试过看看iPhone 7+模拟器库,但模拟器崩溃,因为它不支持深度演示应用程序正在使用的金属。
你将需要有人(如我),它有一个iPhone 7 +与iOS 11的发送给你的图像。
访问iOS上11这个链接与Safari和挖掘more...
- >Save Image
http://hellocamera.co/img/depth-photo.heic
注:我从这个图像删除的GPS数据。
我想你可以在任何iOS设备上处理照片的深度数据。所有你需要的是iPhone 7+拍摄的照片样本。 Here是其中的几个。
的制品是从2016即iOS10,所以我怀疑深度数据已经存在于导出的照片。但我会确认 – Guig
你有没有找到任何东西,@Guig? – triiiiista
虽然是非trival任务,但可以生成AVDepthData并将其添加到您自己的图像中。
CGImageSource.h
CGImageSourceCopyAuxiliaryDataInfoAtIndex
- 但是,以下是详细信息:主要kCGImageAuxiliaryDataInfoData
- (CFDataRef
) - 深度数据
只包含二进制像素缓冲区。就像它是通过读取CVPixelBufferLockBaseAddress中的指针一样从像素缓冲区中拉出的数据。创建CVPixelBuffer受支持的类型中的一个的格式:
要开启的任意灰度图像为假深度缓冲器,你”您需要根据您的目标格式,将任何灰度像素值(0 =黑色到1 =白色,z接近zFar等)转换为米或1 /米。根据你从哪里得到它们,让它们进入正确的浮点格式。
主要kCGImageAuxiliaryDataInfoDataDescription
- (CFDictionary
) - 深度数据描述
告诉您如何解读该缓冲区的一个,我们给你,或者告诉我们如何解释一个缓冲你给我们:
主要kCGImageAuxiliaryDataInfoMetadata
- (CGImageMetadataRef
) - 元数据
此值是可选的。
创建使用ImageI/O的图像:
// create the image destination (not shown)
// add an image to the destination
CGImageDestinationAddImage(cgImageDestination, renderedCGImage, attachments)
// Use AVDepthData to get auxiliary data dictionary
VAR auxDataType:的NSString?
让AUXDATA = depthData.dictionaryRepresentation(forAuxiliaryDataType:& auxDataType)
// Add auxiliary data to image destination
CGImageDestinationAddAuxiliaryDataInfo(cgImageDestination, auxDataType!, auxData! as CFDictionary)
if CGImageDestinationFinalize(cgImageDestination) {
return data as Data
}
非常好,谢谢! – Guig