C中的OpenCV拼接器例程,如何获得像素变换?
Posted
技术标签:
【中文标题】C中的OpenCV拼接器例程,如何获得像素变换?【英文标题】:OpenCV stitcher routine in C , how to get pixel transform? 【发布时间】:2012-10-02 18:11:44 【问题描述】:所以,我设法在 C++ 中使用 opencv 的拼接器例程实现了全景拼接。
拼接完成后,输出会显示初始内在参数,以及每个拼接的相机参数为 3x3 矩阵。
这些参数是什么意思?
我想找出从每个单独图像到合成全景图的像素映射。像素偏移量是多少。这可能是一个二维向量,因为像素是向左或向右平移,然后向上或向下平移。
如何获取输出全景图中每个像素的数据?
【问题讨论】:
【参考方案1】:3x3 矩阵只是 2d 仿射变换(缩放 + 旋转 + 平移)的表示。
要将一幅图像上的 (x1, y1) 转换为具有拼接矩阵 M 的另一幅图像上的 (x2, y2),您只需执行
(x1, y1, 1) = M * (x2, y2, 1)
其中*
是通常的矩阵向量乘法。
请参阅此处(Wiki, Affine transform),了解此类矩阵和齐次(三重)坐标。
【讨论】:
你说的是单应矩阵,对吗?拼接返回的矩阵不是单应矩阵,而是相机矩阵。以上是关于C中的OpenCV拼接器例程,如何获得像素变换?的主要内容,如果未能解决你的问题,请参考以下文章