繁体   English   中英

从ARReferenceImage获取UIImage或CIImage

[英]Getting a UIImage or CIImage from ARReferenceImage

我正在使用ARKitARKit上进行一些动画ARAnchors 我的图像存储在如下所示的AR Resource Group中。

在此处输入图片说明

因此,可以像下面这样访问它们,以便将它们作为跟踪图像加载到我的会话中。 但是, 我也想对这些相同的图像进行一些单独的操作 ,因此需要以CIImagesUIImages形式CIImages进行访问。 现在,我不得不将它们分别导入到我的项目中,因为似乎没有办法从ARReferenceImage提取图像。 有没有办法做到这一点? 使用AR Resource Group非常方便,因为它会在编译前显示有关潜在冲突的警告以及性能较低的标记。 我也相信它会花费更多的时间来加载应用程序,如果我要转换说我的PNG图像到CIImages然后进入ARReferenceImage在我viewDidLoad()或一些类似手段。

guard let trackedImages = ARReferenceImage.referenceImages(inGroupNamed: "Photos", bundle: Bundle.main) else {
    print("No images available")
    return
}

在Xcode中创建ARReferenceImage不会将原始图像放入应用程序的资产目录中,因此原始图像在运行时不可用。 (相反,ARKit会将图像预处理为一种形式,从而可以在减少存储空间的同时提高识别效率。)

如果您想同时使用图像进行ARKit识别和视觉显示(或其他处理),则需要将其两次包含在资产目录中-一次作为AR参考图像,然后再次作为常规( UIImage )资产。

或者,您可以将其作为普通映像添加到资产目录中,然后在运行时从中创建一个ARReferenceImage -该类具有使用CGImage的初始化CGImage (在这种情况下,使用资产目录的“ AR参考图像”区域对图像进行预检可能仍然有用,即使您未采用这种方法,也要确保它们能被识别。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM