ARKit 检测图片(类似支付宝扫福字)

ARKit1.5多了识别图片功能 与常见的第三方相比方便了不少

效果图如下:


image.png

下面是使用流程

1.在Assets里创建一个AR Resources文件夹(其他名字也可以)

2.把图片放进AR Resources,然后使用Xcode面板设置识别图像的实际大小

image.png

如果不设置大小会蹦 不过你没设置大小也会报警告
可以在官网上找到答案

image.png

3.创建一个ARReferenceImage对象,并赋值给世界追踪类的detectionImages属性。


image.png

4.然后运行追踪类

image.png
    / **会话将重置跟踪。*/
    ARSessionRunOptionResetTracking     
   
    / **会话将删除现有的锚点。*/
   ARSessionRunOptionRemoveExistingAnchors  
  1. 然后便可在代理方法中给目标图片添加3D模型了
- (void)renderer:(id<SCNSceneRenderer>)renderer didAddNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor {
    
    ARImageAnchor * imageAnchor = (ARImageAnchor *)anchor;
    
    //获取参考图片对象
    ARReferenceImage * referenceImage = imageAnchor.referenceImage;
    
    if ([referenceImage.name isEqual: @"lcw"]) {
        
        SCNNode * tempNode = [SCNNode new];
        
        CGFloat w = referenceImage.physicalSize.width;
        CGFloat h = referenceImage.physicalSize.height;
        
        SCNBox * box = [SCNBox boxWithWidth:w height:h length:0.01 chamferRadius:0];
        tempNode.geometry = box;
        tempNode.eulerAngles = SCNVector3Make(-M_PI/2.0, 0, 0);
        tempNode.opacity = 0.5;//透明度
        
        [node addChildNode:tempNode];
    }
    
}

代码

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Introducing ARKit iOS 11 引入 ARKit,这是 个全新的框架,允许开发者轻松地为 iP...
    没八阿哥的程序阅读 2,479评论 1 9
  • 春分刚过,清明就到了。这几天和弟弟商量,避过这几天扫墓的高峰,再去给妈妈扫墓,所以清明节这几天便闲在家里。 姐姐从...
    薇薇薛阅读 301评论 2 0
  • “大漠孤烟直,长河落日圆。”这两首诗相信大家并不陌生。我个人也特别喜欢。每次读到,都会有唯美,壮阔的画面感。也一直...
    陈晓依阅读 458评论 0 2
  • 作了改变恶习的决定,却迟迟不去执行,或者执行了一段时间就放弃了,而恶习仍在继续。之所以屡屡出现这种情况,其根源是没...
    nico风阅读 283评论 1 2
  • 适逢儿童节,有点想法。不为远去的童年,只为了慰藉未泯的童心。 早几天就想写写我楼上的小沈,他是我前几天写过的《楼上...
    白丁平民阅读 339评论 7 7