首页 文章

ARKit 1.5:提取识别的图像

提问于
浏览
2

因此,我的目标是:

  • 查找已知图片

  • 从 sceneView 中提取(e.g 拍摄快照)

  • 执行进一步处理

使用ARReferenceImage完成第一步非常容易:

guard let referenceImages = ARReferenceImage.referenceImages(inGroupNamed: "AR Resources", bundle: nil) else { return }

let configuration = ARWorldTrackingConfiguration()

configuration.detectionImages = referenceImages

但是现在我不知道如何从 SceneView 中提取图像。我已将平面节点添加到 imageAnchor 中:

func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {
    DispatchQueue.main.async { [unowned self] in
        guard let imageAnchor = anchor as? ARImageAnchor
            else { return }

        let planeNode = self.getPlaneNode(withReferenceImage: imageAnchor.referenceImage)
        planeNode.opacity = 0.5
        planeNode.eulerAngles.x = -.pi / 2
        node.addChildNode(planeNode)
    }
}

结果:
在此处输入图片说明

因此,我需要平面节点在屏幕上的投影以获取节点的 2D 屏幕坐标,然后剪切图像。我找到了以下方法:renderer.projectPoint(node.position)却没有帮助。当整个图片显示在屏幕上时,它甚至可以返回负值。

我做对了吗?任何帮助将不胜感激。

1 回答

相关问题