我有一个Aruco Marker的转换,我想得到相机姿势使用该信息。如何仅使用Aruco标记的变换来更新相机姿势。
我想统一地做这个估计,但我不确定如何做。
发布于 2020-08-31 11:18:52
https://github.com/flankechen/ArUco_Unity
我曾经使用Aruco for AR为Unity做一次跳水。Aruco的模型视图矩阵对于相机姿势是足够的。在c#代码中,我在本地的Aruco中获得了左手变换,用于opengl,将其转换为右手的单位,反向,并获得位置和旋转来设置单位相机。有关详细信息,请查看https://github.com/flankechen/ArUco_Unity/blob/master/RenderingPluginExample52_ArUco_unity/UnityProject/Assets/UseRenderingPlugin.cs。“酷”的部分是从左手系统转换到右手系统。并不是所有的“谷歌代码”都能工作。
//reform a left handed system transform matrix from right handed
public static Matrix4x4 LHMatrixFromRHMatrix(Matrix4x4 rhm)
{
Matrix4x4 lhm = new Matrix4x4();;
// Column 0.
lhm[0, 0] = rhm[0, 0];
lhm[1, 0] = rhm[1, 0];
lhm[2, 0] = -rhm[2, 0];
lhm[3, 0] = rhm[3, 0];
// Column 1.
lhm[0, 1] = rhm[0, 1];
lhm[1, 1] = rhm[1, 1];
lhm[2, 1] = -rhm[2, 1];
lhm[3, 1] = rhm[3, 1];
// Column 2.
lhm[0, 2] = -rhm[0, 2];
lhm[1, 2] = -rhm[1, 2];
lhm[2, 2] = rhm[2, 2];
lhm[3, 2] = -rhm[3, 2];
// Column 3.
lhm[0, 3] = rhm[0, 3];
lhm[1, 3] = rhm[1, 3];
lhm[2, 3] = -rhm[2, 3];
lhm[3, 3] = rhm[3, 3];
return lhm;
}https://stackoverflow.com/questions/63653656
复制相似问题