当前位置: 首页 > 知识库问答 >
问题:

ARCore:如何将PlaneFindingMode限制为只允许垂直曲面?

皮煜
2023-03-14

我对ARCORE和Kotlin是个新手,正在尝试一个简单的android-kotlin应用程序,它需要检测墙壁。我知道谷歌用PlaneFindingMode.Vertical标签使之成为可能,但我不知道如何使用它。

如有任何帮助,我们将不胜感激。

共有1个答案

郭和硕
2023-03-14

这里可能有副本,但我还是会回答的。

这种实现可能也适用于ARCore。但我用SceneForm SDK测试了这一点

首先设置AR会话,然后使用扩展函数修改平面查找。

override fun onResume() {
    super.onResume()

    //Check if ARSession is null. If it is, instantiate it
    if(arSession == null) {
        arSession = Session(this@EdgeActivity)
        arSession?.setupPlaneFinding()
    }
}


// Setup plane detection
private fun Session.setupPlaneFinding() {

    //Create the config
    arConfig = Config(this)

    //Pause the session | Not sure if this is required for modifying plane detection. I was using this for something else, try & modify at your end
    pause()

    // Modify the plane finding mode
    arConfig?.planeFindingMode = Config.PlaneFindingMode.VERTICAL

    //Reinstate the session
    resume()

    //Sceneform requires that the ARCore session is configured to the UpdateMode LATEST_CAMERA_IMAGE. | I kept getting an exception if I remove this line. Again, this method is part of a bigger code, this particular line may not be required at your end. Try & Modify
    arConfig?.updateMode = Config.UpdateMode.LATEST_CAMERA_IMAGE

    //Reconfigure the session
    configure(arConfig)

    //Setup the session with ARSceneView | Very important
    fragment.arSceneView.setupSession(this)
}
 类似资料:
  • 问题内容: 我想知道是否有人使用ARCore SDK实时识别了设备之前的垂直平面。 通过使用线方程定义墙,我设法获得了不错的结果: 用“每y个”注释表示要忽略y轴(如在房间的2d映射中从上方看墙壁),以便计算定义墙壁的线。 乘数是两点之间的旋转: 所有的计算是: 现在,我在用户四处走动并采样许多点云点时触发该计算。 结果很好,但不如ARCore的水平面检测准确。 问题答案: 现在是ARCore的一

  • 我想问,有没有可能限制我的模板函数,使它只接受我指定的几种类型?这就是如何告诉编译器在我使用cout< 更明确地说,这就是我要做的:

  • 问题内容: 我上课了。我怎么能说我想成为某个班级的实施者?编写根本无法编译。 问题答案: 使用代替。

  • 问题内容: 我正在尝试制作一个小的用户名和密码输入框。 我想问一下,如何垂直对齐div? 我所拥有的是: 如何使ID为Username和Form的div垂直对齐中心?我试着把: 在CSS中用于ID为Login的div,但似乎不起作用。任何帮助,将不胜感激。 问题答案: 现代浏览器中最好的方法是使用flexbox: 某些浏览器将需要供应商前缀。对于不支持Flexbox的较旧的浏览器(例如IE9及更低

  • Perl6/Raku 我想创建一个sub,因为只允许将某些值传递给它。不传递允许的值将创建一个checker错误(perl6-c)。 我该怎么做? 非常感谢,-T 你好,Raiph, 在我的WinPopUps模块中,我使用了“在哪里”方法,因为它一目了然地告诉用户允许的值是什么。我喜欢它!这一切都是关于可运维性的!(顺便说一句,下面是你创建的怪物!) 谢谢你的帮助-T 如果您想要完整的模块以及在哪

  • 我想在表格上垂直对齐。 从'React'导入React,{Component};从“原生基”导入{Container,Header,Content,Form,Item,Input,Button,Text};从“react native”导入{StyleSheet}; }); 我的应用程序看起来像这样。