Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用ARKit识别虚拟图像而不是真实图像?(iOS 12)_Ios_Swift_Scenekit_Arkit - Fatal编程技术网

是否可以使用ARKit识别虚拟图像而不是真实图像?(iOS 12)

是否可以使用ARKit识别虚拟图像而不是真实图像?(iOS 12),ios,swift,scenekit,arkit,Ios,Swift,Scenekit,Arkit,我做了一些AR图像跟踪应用程序和AR世界跟踪应用程序 AR图像跟踪用于识别从相机捕获的物理地图上的图像 有没有办法进行AR图像跟踪,以识别基本上是SCNPlane材料的虚拟“图像” 如果有人能给我指点方向或建议,我将不胜感激 (注意:对于本项目,我使用ARWorldTrackingConfiguration上的检测图像) 我想可能是的,可以通过将内容图像(您希望在地图中检测到)添加到Assets.xcsets。然后使用此代码检测虚拟图像,如下所示: //将您的图像名称放入(使用名称:“name

我做了一些AR图像跟踪应用程序和AR世界跟踪应用程序

AR图像跟踪用于识别从相机捕获的物理地图上的图像

有没有办法进行AR图像跟踪,以识别基本上是SCNPlane材料的虚拟“图像”

如果有人能给我指点方向或建议,我将不胜感激

注意:对于本项目,我使用ARWorldTrackingConfiguration上的检测图像)


我想可能是的,可以通过将内容图像(您希望在地图中检测到)添加到Assets.xcsets。然后使用此代码检测虚拟图像,如下所示:

//将您的图像名称放入(使用名称:“namehere”)

 lazy var mapNode: SCNNode = {
       let node = scene.rootNode.childNode(withName: "map", recursively: false)
        return node
    }()

// Now When detecting Images 


extension ViewController: ARSCNViewDelegate {

        func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {
            DispatchQueue.main.async {
                guard let imageAnchor = anchor as? ARImageAnchor,
                    let imageName = imageAnchor.referenceImage.name else { return }

                // TODO: Comment out code
                //            let planeNode = self.getPlaneNode(withReferenceImage: imageAnchor.referenceImage)
                //            planeNode.opacity = 0.0
                //            planeNode.eulerAngles.x = -.pi / 2
                //            planeNode.runAction(self.fadeAction)
                //            node.addChildNode(planeNode)

                // TODO: Overlay 3D Object
                let overlayNode = self.getNode(withImageName: imageName)
                overlayNode.opacity = 0
                overlayNode.position.y = 0.2
                overlayNode.runAction(self.fadeAndSpinAction)
                node.addChildNode(overlayNode)

                self.label.text = "Image detected: \"\(imageName)\""
            }
        }

        func getPlaneNode(withReferenceImage image: ARReferenceImage) -> SCNNode {
            let plane = SCNPlane(width: image.physicalSize.width,
                                 height: image.physicalSize.height)
            let node = SCNNode(geometry: plane)
            return node
        }

        func getNode(withImageName name: String) -> SCNNode {
            var node = SCNNode()
            switch name {
            case "map":
                node = mapNode

            default:
                break
            }
            return node
        }

    }