opencv - icp变换矩阵解释

标签 opencv point-cloud-library

我正在使用 PCL 从 ICP (getTransformationMatrix()) 获取转换矩阵。 例如对于没有旋转的平移运动获得的结果是

0.999998         0.000361048   0.00223594     -0.00763852
-0.000360518     1             -0.000299474   -0.000319525
-0.00223602      0.000298626   0.999998       -0.00305045
       0         0             0              1

如何从矩阵中找到变换? 想法是查看模拟和真实运动之间的误差

最佳答案

我没有使用你在这里提到的库,但我很清楚你提供的结果是一个齐次变换,即左上角的 3x3 矩阵 (R) 是旋转矩阵,右上角的 3x1 (T)是翻译:

M1 = [  **[** [R], [T] **], [** 0 0 0 1 **]**  ] 

请参阅此处的“矩阵表示”部分: http://en.wikipedia.org/wiki/Kinematics

使用此表示法以便您可以通过将变换矩阵相乘来获得连续变换后的最终点。

如果点 p0 变换 n 次,则点 p1 为:

P0 = [[p0_x], [p0_y], [p0_z], [1]]
P1 = [[p1_x], [p1_y], [p1_z], [1]]
M = M1*M2*...*Mn
P1 = M*P0

关于opencv - icp变换矩阵解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18956151/

相关文章:

opencv - 错误:ErorAndroid/sdk/ndk-bundle/ndk-build.cmd''完成,返回值非零2

java - Android 版 OpenCV 中的矩阵乘法

visual-c++ - 您如何使用OpenCV进行2d傅立叶变换?

c++ - 使用 PCL 的浊点可视化流

opencv - 将点云转换为深度/多 channel 图像

c++ - 带有 VideoCapture 的 OpenCV "stuck"帧

java - OpenCV、安卓 : color detection from particular area or portion of an image?

computer-vision - pcl normal.compute 返回 NaN 值

cmake - 错误:Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)

3d - 如何从实感相机中提取浊点?