C语言中的OpenCV拼接器例程,如何获得像素变换

OpenCV stitcher routine in C , how to get pixel transform?

本文关键字:何获得 像素 变换 例程 语言 OpenCV 拼接      更新时间:2023-10-16

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

拼接

完成后,输出将显示初始固有参数,并将每个拼接的相机参数显示为 3x3 矩阵。

这些参数是什么意思?

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

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

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

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

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

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

请参阅此处(Wiki,仿射变换)有关此类矩阵和齐次(三重)坐标的信息。