【问题标题】:OpenCV stitcher routine in C , how to get pixel transform?C中的OpenCV拼接器例程,如何获得像素变换?
【发布时间】:2012-10-02 18:11:44
【问题描述】:

所以,我设法在 C++ 中使用 opencv 的拼接器例程实现了全景拼接。

拼接完成后,输出会显示初始内在参数,以及每个拼接的相机参数为 3x3 矩阵。

这些参数是什么意思?

我想找出从每个单独图像到合成全景图的像素映射。像素偏移量是多少。这可能是一个二维向量,因为像素是向左或向右平移,然后向上或向下平移。

如何获取输出全景图中每个像素的数据?

【问题讨论】:

    标签: c++ opencv


    【解决方案1】:

    3x3 矩阵只是 2d 仿射变换(缩放 + 旋转 + 平移)的表示。

    要将一幅图像上的 (x1, y1) 转换为具有拼接矩阵 M 的另一幅图像上的 (x2, y2),您只需执行

     (x1, y1, 1) = M * (x2, y2, 1)
    

    其中* 是通常的矩阵向量乘法。

    请参阅此处(Wiki, Affine transform),了解此类矩阵和齐次(三重)坐标。

    【讨论】:

    • 你说的是单应矩阵,对吗?拼接返回的矩阵不是单应矩阵,而是相机矩阵。
    猜你喜欢
    • 2013-06-04
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 2019-01-01
    • 2023-03-17
    • 1970-01-01
    • 2012-01-02
    • 2014-03-30
    相关资源
    最近更新 更多