Piy*_*hur 5 ios swift arkit iphone-x ios12
我正在开发一个项目,该项目需要每只眼睛的大小和眼睛之间的距离,在 iPhone X 上使用 ARKit 和真实深度相机,在 Xcode 10 beta 4 上使用 iOS 12 beta 4。
由于我是 ARKit 的新手,我在网上搜索解决方案时几乎没有什么了解。然而,我在苹果开发者门户网站上看到了一个演示代码。在该代码中,我尝试获取所需的值。
我在 ARSCNFaceGeometry 和 ARFaceAnchor 上工作以获取几个值。
func update(withFaceAnchor anchor: ARFaceAnchor) {
let faceGeometry = geometry as! ARSCNFaceGeometry
faceGeometry.update(from: anchor.geometry)
print("\nLook at Point :", anchor.lookAtPoint, "\nLeft :", anchor.leftEyeTransform, "\nRight :", anchor.rightEyeTransform)
}
Run Code Online (Sandbox Code Playgroud)
输出:
看点:float3(0.14502259, 0.2905016, 0.97809345)
左:simd_float4x4([[0.99312633,-0.030915117,-0.11289084,0.0)],[0.0,0.9644885,-0.26412484,0.0)],[0.11704737,0.26230934,0.9578589,0.0)],[0.03311049,0.028666705,0.028539032,1.0) ]])
右:simd_float4x4([[0.9830616,-0.047965277,-0.17688738,0.0)],[0.0,0.96514606,-0.26171172,0.0)],[0.18327524,0.25727874,0.94879806,0.0)],[-0.032072492,0.028482603,0.028181288,1.0 )]])
问题
如何转换这些值以利用它并获得一些坐标?
这段代码会帮助我实现每只眼睛的大小和眼睛之间的距离吗?如果不是,那么我该怎么做才能获得测量结果?
你可以从变换中得到向量3:
var leftEyePosition = SCNVector3(leftTransform.columns.3.x, leftTransform.columns.3.y, leftTransform.columns.3.z)
var rightEyePosition = SCNVector3(rightTransform.columns.3.x, rightTransform.columns.3.y, rightTransform.columns.3.z)
Run Code Online (Sandbox Code Playgroud)
那么你可以像这样得到2 SCNVector3 形式的距离。
let d = distance(float3(leftEyePosition), float3(rightEyePosition))
Run Code Online (Sandbox Code Playgroud)
结果将以米为单位,因此您可能需要将 d 除以 100
| 归档时间: |
|
| 查看次数: |
3270 次 |
| 最近记录: |