Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 为什么我们需要将(camera_matrix 1和2)和(R和T)参数都输入到StereoRective()?_Opencv_Image Processing_Computer Vision - Fatal编程技术网

Opencv 为什么我们需要将(camera_matrix 1和2)和(R和T)参数都输入到StereoRective()?

Opencv 为什么我们需要将(camera_matrix 1和2)和(R和T)参数都输入到StereoRective()?,opencv,image-processing,computer-vision,Opencv,Image Processing,Computer Vision,要进行立体声校准,我们需要执行3个步骤(输入参数-->输出参数): :obj_角点、img_角点-->摄像机矩阵、畸变系数 :obj_角点、img_角点1/2、摄像机矩阵1/2、畸变系数1/2-->R、T、E、F :摄像机矩阵1/2,畸变系数1/2,R,T-->R1/2,P1/2,Q 我错过了一些情人 现在我们可以用Q表示,用P1或P2表示 但是,为什么我们需要同时输入(camera_matrix 1和2)和(R&T)参数 如所知,已包含R&T: struct CV_EXPORTS Camera

要进行立体声校准,我们需要执行3个步骤(输入参数-->输出参数):

  • :obj_角点、img_角点-->摄像机矩阵、畸变系数

  • :obj_角点、img_角点1/2、摄像机矩阵1/2、畸变系数1/2-->R、T、E、F

  • :摄像机矩阵1/2,畸变系数1/2,R,T-->R1/2,P1/2,Q

  • 我错过了一些情人

    现在我们可以用Q表示,用P1或P2表示

    但是,为什么我们需要同时输入(camera_matrix 1和2)和(R&T)参数

    如所知,已包含R&T:

    struct CV_EXPORTS CameraParams
    {
        CameraParams();
        CameraParams(const CameraParams& other);
        const CameraParams& operator =(const CameraParams& other);
        Mat K() const;
    
        double focal; // Focal length
        double aspect; // Aspect ratio
        double ppx; // Principal point X
        double ppy; // Principal point Y
        Mat R; // Rotation
        Mat t; // Translation
    };
    

    我们从中获得的R&T与我们从中获得的CameraParams中包含的R&T有什么区别?

    这里的问题是术语不一致。OpenCV称之为camera matrix的是一个3x3矩阵
    K
    ,包含内部函数。Harley和Zisserman称之为camera matrix的是3x4 camera projection matrix
    P=K*[R | t]
    ,它包括内部和外部属性。

    您似乎将camera matrix(只有内部参数)和缝合名称空间的CameraParams结构混合在一起,其中包含其他内容,包括外部参数。@Joan Charmant,即摄影机矩阵-3x3矩阵(仅内部参数
    K
    ),但
    stitch::detail::CameraParams
    -3x4矩阵(内部和外部参数
    K*[R | t]
    ),不是吗?这是否意味着
    stitch::detail::CameraParams
    是P(投影矩阵)?谢谢。但是
    stitch::detail::CameraParams
    是投影矩阵
    P=K*[R | t]
    ?因为它包含了<代码> R< /代码>和<>代码> t>代码>和<代码> k>代码>:在这里,代码> k>代码>:<代码> Cyc::细节:CAMMALAS AMS/<代码>是C++类,而不是矩阵。
    stereorective()
    函数不接受
    CameraParams
    对象。它需要
    cv::Mat
    包含矩阵的对象。是的,我的意思是
    stitch::detail::CameraParams
    包含与
    P
    相同的所有数据,我们可以从
    stitch::detail::CameraParams
    中获得
    P