在 ARCore 中检测垂直平面
Detecting vertical planes in ARCore
我想知道是否有人设法使用 ARCore SDK 实时识别设备前方的垂直平面。
我通过使用线方程定义墙获得了不错的结果:
z = Multiplier * x + Constant (For every y)
by "for every y" 评论我的意思是我忽略了 y 轴(从上面看墙,就像在房间的二维映射中一样)以计算定义墙的线。
乘数是点之间的旋转:
let angleDeg = Float((360 - angle + 360) % 360) * Float.pi / 180.0;
全部计算为:
let angle: Int = Int((atan2(pointA.z - pointB.z, pointA.x - pointB.x) * 180) / Float.pi) % 360
yRotation = Float((360 - angle + 360) % 360) * Float.pi / 180.0
if pointA.x == pointB.x {
multiplier = Float.infinity
} else {
multiplier = (pointA.z - pointB.z) / (pointA.x - pointB.x)
}
constant = pointA.z - multiplier * pointA.x
}
现在我在用户四处走动时触发该计算并对许多点云的点进行采样。
结果不错,但不如ARCore的水平面检测准确。
您可以参考问题中提到的官方 Google AR Core github repo https://github.com/google-ar/arcore-unity-sdk/issues/31 . This feature is released in ARCore SDK for unity (v1.2.0) SDK link 上的这个问题。希望这会有所帮助:)
现在是 ARCore 的一部分,已于 version 1.2.0 发布 android
自 ARCore 1.2 发布以来,我们可以使用 Config.PlaneFindingMode
枚举的四个值。
代码如下所示:
public static final Config.PlaneFindingMode DISABLED
// Plane detection is disabled.
public static final Config.PlaneFindingMode HORIZONTAL
// Detection of only horizontal planes is enabled.
public static final Config.PlaneFindingMode VERTICAL
// Detection of only vertical planes is enabled.
public static final Config.PlaneFindingMode HORIZONTAL_AND_VERTICAL
// Detection of both horizontal and vertical planes is enabled.
希望对您有所帮助。
我想知道是否有人设法使用 ARCore SDK 实时识别设备前方的垂直平面。
我通过使用线方程定义墙获得了不错的结果:
z = Multiplier * x + Constant (For every y)
by "for every y" 评论我的意思是我忽略了 y 轴(从上面看墙,就像在房间的二维映射中一样)以计算定义墙的线。
乘数是点之间的旋转:
let angleDeg = Float((360 - angle + 360) % 360) * Float.pi / 180.0;
全部计算为:
let angle: Int = Int((atan2(pointA.z - pointB.z, pointA.x - pointB.x) * 180) / Float.pi) % 360
yRotation = Float((360 - angle + 360) % 360) * Float.pi / 180.0
if pointA.x == pointB.x {
multiplier = Float.infinity
} else {
multiplier = (pointA.z - pointB.z) / (pointA.x - pointB.x)
}
constant = pointA.z - multiplier * pointA.x
}
现在我在用户四处走动时触发该计算并对许多点云的点进行采样。
结果不错,但不如ARCore的水平面检测准确。
您可以参考问题中提到的官方 Google AR Core github repo https://github.com/google-ar/arcore-unity-sdk/issues/31 . This feature is released in ARCore SDK for unity (v1.2.0) SDK link 上的这个问题。希望这会有所帮助:)
现在是 ARCore 的一部分,已于 version 1.2.0 发布 android
自 ARCore 1.2 发布以来,我们可以使用 Config.PlaneFindingMode
枚举的四个值。
代码如下所示:
public static final Config.PlaneFindingMode DISABLED
// Plane detection is disabled.
public static final Config.PlaneFindingMode HORIZONTAL
// Detection of only horizontal planes is enabled.
public static final Config.PlaneFindingMode VERTICAL
// Detection of only vertical planes is enabled.
public static final Config.PlaneFindingMode HORIZONTAL_AND_VERTICAL
// Detection of both horizontal and vertical planes is enabled.
希望对您有所帮助。