opencv - 确定两个 360x180 等距柱状全景图像之间的相机旋转

标签 opencv

我有 n 帧 360x180 全景图像。我想根据两个连续图像之间的比较来确定相机的旋转。对于这个项目,可以安全地假设图像中所有可见的特征都在无穷远处。

我(今天)是 OpenCV 的新手,肯定需要做更多的阅读。我有一个应用程序可以使用 SIFT 或 SURF 找到关键点,但我不确定如何从这里继续。

谢谢

最佳答案

要找到图像之间的旋转,您需要知道两者的方向,因此,姿势。要计算相机姿态,您需要从关键点匹配 中找到单应性 变换。

假设您知道第一帧的方向和位置,因为您是任意决定的。您拥有 SIFT 提取的关键点。从这里开始,您可以执行后续步骤:

1- 从下一帧中提取关键点。

2- 在两个帧上找到关键点的匹配项。

3- 使用 RANSAC 为下一步找到匹配的最佳内点/外点集

4- 对该集合使用 DLT(直接线性变换),这将使用 4 个匹配来查找图像之间的单应性。

5-一旦有了单应性,就可以提取姿态和旋转。

除了 pose from homography 之外的所有步骤,您都有 openCV 函数.

关于opencv - 确定两个 360x180 等距柱状全景图像之间的相机旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11642988/

相关文章:

python - [...,::-1] 如何在切片表示法中工作?

android - opencv在变量中获取fps

python - 保存带有时间戳的视频帧

c++ - 为什么我对 cv::Mat 迭代器的分配不起作用?

c++ - 使用opencv mat处理AVFrame导致编码错误

android - 为Android构建OpenCV并将其与NDK结合使用

python - 如何处理和提取图像中的文本

python - 如何从 PIL 图像创建 OpenCV 图像?

python - 从 Homography 矩阵计算 Essential 矩阵

c++ - OpenCV 背景减法/密码本?