在Google 样本上,我可以从矩阵中获取由ArAnchor或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很好,ArImage很好,AImage很好。
格式和NumberOfPlanes从图像是好的。
ScopedArPose类与google相同。array<float, 16>运行良好,在谷歌样本中进行了测试。
少了什么?
发布于 2018-11-21 08:25:19
为了解决这个问题,需要先检查摄像机的状态。
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;
}https://stackoverflow.com/questions/53378991
复制相似问题