前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ARKit 检测图片(类似支付宝扫福字)

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

原创
作者头像
发布2018-05-07 15:09:42
1.1K0
发布2018-05-07 15:09:42
举报
文章被收录于专栏:浅探ARKit浅探ARKit

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

效果图如下:

image.png
image.png

下面是使用流程

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

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

image.png
image.png

如果不设置大小会蹦 不过你没设置大小也会报警告

可以在官网(https://developer.apple.com/documentation/arkit/arreferenceimage

)上找到答案

image.png
image.png

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

image.png
image.png

4.然后运行追踪类

image.png
image.png
代码语言:txt
复制
    / **会话将重置跟踪。*/
    ARSessionRunOptionResetTracking     
   
    / **会话将删除现有的锚点。*/
   ARSessionRunOptionRemoveExistingAnchors  
  1. 然后便可在代理方法中给目标图片添加3D模型了
代码语言:txt
复制
- (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];
    }
    
}

代码

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档