0

ARKit用来做一些动画ARAnchors。我的图像存储在AR Resource Group下面。

在此处输入图像描述

因此,可以像下面这样访问它们,以便将它们作为跟踪图像加载到我的会话中。但是,我还想对这些相同的图像进行一些单独的操作,因此需要以CIImagesor 或的形式访问它们UIImages。现在我必须将这些单独导入到我的项目中,因为似乎没有办法从ARReferenceImage. 有没有办法做到这一点?使用它非常方便,AR Resource Group因为它会在编译前显示有关潜在冲突的相关警告以及性能较差的标记。我还假设如果我要将我的 PNG 图像转换成我的或通过某种类似方式转换成CIImages然后转换成我的应用程序,则加载应用程序需要更多时间。ARReferenceImageviewDidLoad()

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

1 回答 1

1

在 Xcode 中创建ARReferenceImages 不会将原始图像放入应用的资产目录中,因此原始图像在运行时不可用。(相反,ARKit 将图像预处理成一种形式,使识别更高效,同时使用更少的存储空间。)

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

或者,您可以将它作为普通图像添加到您的资产目录中,然后ARReferenceImage在运行时从它创建一个 - 该类有一个初始化程序,它采用CGImage. (在这种情况下,使用资产目录的 AR 参考图像区域来预检您的图像并确保它们有利于识别,即使您没有以这种方式交付它们,它们仍然很有用。

于 2019-01-22T04:05:23.160 回答