本质矩阵分解计算R&t

1 本质矩阵的计算

上一文章中描述了本质矩阵的计算,计算机视觉-对极几何-CSDN博客,那么计算得到本质矩阵有什么用?其中一个应用是通过本质矩阵计算得到2D-2D的相对变换。

在相关矩阵计算时,一般会在两幅图像中,根据特征找到对应匹配对后估计出基础矩阵F或本质矩阵E,如果是直接估计出基础矩阵F,且知道两幅图中的相机参数分别为K1、K2,则可以直接得到本质矩阵E

对于本质矩阵与相对变换的R和t有如下关系(注意这里指的相对变换是从第一幅图变换到第二幅图的位姿相对变换)

集体的求解方法参考4中参考文献。

3 R t 的恢复

使用opencv api :

复制代码
int recoverPose( InputArray E, InputArray points1, InputArray points2,
                 InputArray cameraMatrix, OutputArray R, OutputArray t,
                 InputOutputArray mask = noArray() );

int recoverPose( InputArray E, InputArray points1, InputArray points2,
                 OutputArray R, OutputArray t, double focal = 1.0,
                 Point2d pp = Point2d(0, 0), InputOutputArray mask = noArray() );

int recoverPose( InputArray E, InputArray points1, InputArray points2,
                 InputArray cameraMatrix, OutputArray R, OutputArray t, 
                 double distanceThresh, InputOutputArray mask = noArray(),
                 OutputArray triangulatedPoints = noArray());

E:已经求解出来的本质矩阵,它是3x3的矩阵;
points1:第一张图片中的点;
points2:第二张图片中的点;
cameraMatrix:相机内参矩阵,它是3x3的矩阵;
R:求解出来的两帧图片之间的旋转矩阵;
t:求解出来的两帧图片之间的平移向量;
focal:相机焦距;
pp:像素坐标的原点;
distanceThresh:点的距离阈值,用来滤出距离较远的点;
triangulatedPoints:通过三角化还原点;

4 参考博客

SLAM之本质矩阵分解得相对变换的R和t -- MathSword数值计算软件

https://note.youdao.com/ynoteshare/index.html?id=5e98f487c40ef22f90e1177f29271be5&type=note&_time=1666954937067

相关推荐
sali-tec4 小时前
C# 基于OpenCv的视觉工作流-章98-频域滤波
图像处理·人工智能·opencv·计算机视觉
吃好睡好便好6 小时前
MATLAB中图像的线性变换
开发语言·图像处理·学习·计算机视觉·matlab
GetcharZp7 小时前
让照片开口说话:LivePortrait 本地部署玩法详解
人工智能·计算机视觉
cout<<jester8 小时前
人脸情绪识别模型
人工智能·深度学习·计算机视觉
吃好睡好便好9 小时前
MATLAB中图像的对数变换
图像处理·学习·算法·计算机视觉·matlab
szxinmai主板定制专家10 小时前
驱控一体新范式:RK3576+FPGA+CODESYS工业实时AI控制架构全解
人工智能·嵌入式硬件·计算机视觉·fpga开发·架构·工业ai·驱控一体
映翰通网络1 天前
TI开发板上的边缘AI工具链:先认清OpenCV、GStreamer和TIDL
人工智能·嵌入式硬件·opencv·计算机视觉·ti
xp_fangfei1 天前
Halcon之第1讲---基本概念以及基础算子的学习
计算机视觉
深圳市快瞳科技有限公司1 天前
宠物生物特征识别:鼻纹、面部与多模态融合技术的突破
人工智能·算法·计算机视觉·宠物
小保CPP1 天前
OpenCV C++形态学操作-腐蚀与膨胀
c++·人工智能·opencv·计算机视觉