在Google Samples上,我可以获取有关从ArAnchor
或{{1}生成的 Pose 中获取 Matrix 的示例。 }。但是,当我尝试从ArPlane
获取信息时,我的结果是身份矩阵。
我的代码中的小部分:
ArCamera
工作原理:
ScopedArPose scopedArPose(ar_session_);
ArCamera_getPose(ar_session_, ar_camera, scopedArPose.GetArPose());
std::array<float, 16> out_matrix_col_major_4x4;
ArPose_getMatrix(ar_session_, scopedArPose.GetArPose(), out_matrix_col_major_4x4.data());
工作正常,ArSession
正常,我能够得到ArFrame
,ArCamera
正常,ArCameraIntrinsics
正常,{{1 }}可以。
图像的格式和NumberOfPlanes都可以。
ArImage
类与Google示例相同。 AImage
运作良好,已在google示例中进行了测试。
缺少什么?
答案 0 :(得分:0)
要解决此问题,需要先检查相机状态。
ArTrackingState camera_tracking_state;
ArCamera_getTrackingState(ar_session_, ar_camera, &camera_tracking_state);
// If the camera isn't tracking don't bother to go forward
if (camera_tracking_state != AR_TRACKING_STATE_TRACKING) {
LOGI("ARCoreOdometry: Camera Not Tracking");
return;
}