本质矩阵分解计算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

相关推荐
我材不敲代码42 分钟前
基于 OpenCV 的票据图像矫正与透视变换实战
人工智能·opencv·计算机视觉
lxmyzzs1 小时前
使用Python分析COCO数据集标注信息:一个简单脚本实现统计与可视化
python·深度学习·目标检测·计算机视觉
Cpsu1 小时前
EdgeCrafter:实时目标检测任务新SOTA
人工智能·yolo·目标检测·计算机视觉
新新学长搞科研1 小时前
【自动识别相关会议】第五届机器视觉、自动识别与检测国际学术会议(MVAID 2026)
人工智能·目标检测·计算机视觉·自动化·视觉检测·能源·语音识别
ShiMetaPi1 小时前
Seeing the Unseen:基于事件相机的暗光重构特征提取方案
人工智能·计算机视觉·事件相机·evs
sali-tec2 小时前
C# 基于OpenCv的视觉工作流-章40-特征找图
图像处理·人工智能·opencv·算法·计算机视觉
剑穗挂着新流苏3122 小时前
108_深度学习中的“瘦身术”:最大池化层(MaxPool2d)原理与实战
pytorch·深度学习·计算机视觉
兮℡檬,2 小时前
OpenCV
人工智能·opencv·计算机视觉
进击ing小白2 小时前
OpenCv中基础图形的绘制
人工智能·opencv·计算机视觉
炎爆的土豆翔11 小时前
OpenCV 阈值二值化优化实战:LUT 并行、手写 AVX2 与 cv::threshold 性能对比
人工智能·opencv·计算机视觉