zoukankan      html  css  js  c++  java
  • 图像间投影关系

    成像过程:

    薄镜公式:1/f=1/do=1/di;do:物体到镜子距离

               di:成像面到镜子距离

    针孔照相机模型

     对极线

      十五天掌握OpenCV——对极几何(Epipolar Geometry)_尹江 _ Cecil-CSDN博客

    计算基础矩阵的函数:

    int cvFindFundamentalMat( const CvMat* points1, const CvMat* points2, CvMat* fundamental_matrix, int method=CV_FM_RANSAC, double param1=1., double param2=0.99, CvMat* status=NULL);

    points1

    • 第一幅图像点的数组,大小为2xN/Nx2 或 3xN/Nx3 (N 点的个数),多通道的1xN或Nx1也可以。点坐标应该是浮点数(双精度或单精度)。:
    • points2
    • 第二副图像的点的数组,格式、大小与第一幅图像相同。
    • fundamental_matrix
    • 输出的基本矩阵。大小是 3x3 或者 9x3 ,(7-点法最多可返回三个矩阵).
    • method
    • 计算基本矩阵的方法
      • CV_FM_7POINT – 7-点算法,点数目= 7(选择方法一,返回9*3矩阵,因为方程不定)
      • CV_FM_8POINT – 8-点算法,点数目 >= 8
      • CV_FM_RANSAC – RANSAC 算法,点数目 >= 8
      • CV_FM_LMEDS - LMedS 算法,点数目 >= 8
    • param1
    • 这个参数只用于方法RANSAC。它是点到对极线的最大距离,超过这个值的点将被舍弃,不用于后面的计算。通常这个值的设定是0.5 or 1.0 。
    • param2
    • 这个参数只用于方法RANSAC 或 LMedS 。 它表示矩阵正确的可信度。例如可以被设为0.99 。
    • status
    • 具有N个元素的输出数组,在计算过程中没有被舍弃的点,元素被被置为1;否则置为0。这个数组只可以在方法RANSAC and LMedS 情况下使用;在其它方法的情况下,status一律被置为1。这个参数是可选参数。

    函数 FindFundamentalMat 利用上面列出的四种方法之一计算基本矩阵,并返回基本矩阵的值:没有找到矩阵,返回0,找到一个矩阵返回1,多个矩阵返回3。 计算出的基本矩阵可以传递给函数cvComputeCorrespondEpilines来计算指定点的对极线。

     cv.computeCorrespondEpilines(points, whichImage, F, lines)

    oints:输入点。类型为CV_32FC2N×1或1×N矩阵。
    whichImage:包含点的图像(1或2)的索引。
    F:基本矩阵,可使用findFundamentalMat或stereoRectify 进行估计。
    lines:对应于另一幅图像中点的极线的输出向量(a,b,c)表示直线ax+by+c=0。

  • 相关阅读:
    Sizzle选择器引擎介绍
    from、includes、indexOf
    indexOf与includes的区别
    ES6 find 和 filter 的区别
    Spring MVC多个视图解析器及优先级
    Spring MVC多个视图解析器及优先级
    freemarker 中文乱码问题解决办法
    freemarker 中文乱码问题解决办法
    freemarker 中文乱码问题解决办法
    Spring集成MyBatis 通用Mapper以及 pagehelper分页插件
  • 原文地址:https://www.cnblogs.com/KAVEI/p/14750644.html
Copyright © 2011-2022 走看看