计算两幅图像之间的单应矩阵

单应矩阵

  是指在特殊情况下(纯旋转或平面目标),投影矩阵为3x3的矩阵

  单应矩阵格式

                              

 

 

 

应用:图像校正 视角变换 图像拼接 增强现实

找到单应矩阵的函数:

Mat cv::findHomography    (    InputArray     srcPoints,
                                InputArray     dstPoints,
                                int     method = 0,
                                double     ransacReprojThreshold = 3,
                                OutputArray     mask = noArray(),
                                const int     maxIters = 2000,
                                const double     confidence = 0.995 
)


)
参数详解:

srcPoints 源平面中点的坐标矩阵,可以是CV_32FC2类型,也可以是vector<Point2f>类型
dstPoints 目标平面中点的坐标矩阵,可以是CV_32FC2类型,也可以是vector<Point2f>类型

 

method 计算单应矩阵所使用的方法。不同的方法对应不同的参数,具体如下:
0 - 利用所有点的常规方法
RANSAC - RANSAC-基于RANSAC的鲁棒算法
LMEDS - 最小中值鲁棒算法
RHO - PROSAC-基于PROSAC的鲁棒算法

 

 

ransacReprojThreshold

将点对视为内点的最大允许重投影错误阈值(仅用于RANSAC和RHO方法)。如果

则点被认为是个外点(即错误匹配点对)。若srcPoints和dstPoints是以像素为单位的,则该参数通常设置在1到10的范围内。

 

mask
可选输出掩码矩阵,通常由鲁棒算法(RANSAC或LMEDS)设置。 请注意,输入掩码矩阵是不需要设置的。

 

maxIters RANSAC算法的最大迭代次数,默认值为2000。

confidence 可信度值,取值范围为0到1.


重载形式:

Mat cv::findHomography    (    InputArray     srcPoints,
                                InputArray     dstPoints,
                                OutputArray     mask,
                                int     method = 0,
                                double     ransacReprojThreshold = 3 
)        

 

posted @ 2021-05-13 13:39  KAVEI  阅读(409)  评论(0编辑  收藏  举报