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

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

效果图如下:

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

下面是使用流程

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

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

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

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

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

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

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

4.然后运行追踪类

ARKit 检测图片(类似支付宝扫福字)
image.png
    / **会话将重置跟踪。*/
    ARSessionRunOptionResetTracking     
   
    / **会话将删除现有的锚点。*/
   ARSessionRunOptionRemoveExistingAnchors
  1. 然后便可在代理方法中给目标图片添加3D模型

- (void)renderer:(id)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];
    }
    
}

代码

  • 作者:李境沛
    链接:https://www.jianshu.com/p/4f07d1e46902

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » ARKit 检测图片(类似支付宝扫福字)

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址