我想对ARKit会话期间在单个帧中找到的每个检测到的特征点进行一些处理.如何迭代每个检测到的特征点,并获得它们的世界坐标?
我正在使用Swift,但Objective-C答案也会很好.
编辑:在Xcode 9.0 GM(及更高版本)中,points是一个Swift float3矢量数组,所以你可以像任何其他Swift数组一样迭代它:
for point in frame.rawFeaturePoints.points {
...
}
Run Code Online (Sandbox Code Playgroud)
要么:
frame.rawFeaturePoints.points.map { point in
...
}
Run Code Online (Sandbox Code Playgroud)
或者您最喜欢的阵列/收集算法.
在各种Xcode 9.x测试版中,此属性的Swift Array版本不可用.所以你必须处理底层的ObjC属性,它导入Swift作为一个UnsafePointer,你不能轻易迭代.(因此OP的原始问题.)
如果那个bug再次出现(或者你遇到类似的问题),你可以这样做:
for index in 0..<frame.rawFeaturePoints.count {
let point = frame.rawFeaturePoints.points[index]
// do something with point
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2257 次 |
| 最近记录: |