python - 足球场的单应性

标签 python opencv homography pose-estimation

好的,所以我正在尝试查找足球比赛的单应性。我现在所拥有的是

  1. 从文件夹中读取图像,该文件夹基本上是模板足球场的许多裁剪图像。基本上这有中心圆和罚球线等的图像。
  2. 从文件中读取视频流并将其裁剪成许多较小的片段。
  3. 在视频流中的图像内循环,并在另一个循环内循环我从文件夹中读取的图像。
  4. 现在在我通过迭代获得的两个图像中,我应用了绿色滤镜,因为我假设字段是绿色的
  5. 使用 orb 查找点,然后找到匹配项。

现在的问题是,由于玩家和来自 croud 的一些噪音,我无法找到适合单应性的匹配项。删除它们也是一个问题,因为这也往往会隐藏我需要计算单应性的足球场线。

非常感谢对此提出任何建议。下面还有一些示例代码和我正在使用的图像。

"Code being used"

示例图片

我得到的输出

输出右侧的图像是视频中的一帧,左侧是我在 filterGreen 函数后上传的相同示例图像,从代码中可以看出。

最后我想要的是图像正确映射到中心圆,这样我就可以在中心画一个立方体,有点类似于"This example" .在此先感谢您帮助我。

最佳答案

解决这个问题的一个有趣技术是 RASL。它计算对齐相关图像堆栈的单应性。它不需要指定图像上的对应点,而是直接对图像像素进行操作。它对图像遮挡(例如,玩家在前景中移动)具有很强的鲁棒性。

我刚刚在这里发布了一个 Python 实现:https://github.com/welch/rasl (那里还有原始 RASL 论文、MATLAB 实现和数据的链接)。

我不确定您是否要将输入图像裁剪到该中心圆,或者是否可以对齐整个帧。两者都试试看。

关于python - 足球场的单应性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36541302/

相关文章:

matrix - 如何比较两个单应矩阵?

python - 给定等边三角形的 2D 角坐标的 3D 法线向量

python - 'numpy.float6 4' object has no attribute ' 应用'

python - 如何在不增加噪声的情况下使用python调整图像大小?

c++ - (Ubuntu 14.04) apt-get libopencv-dev,但出现错误 : Unable to correct problems, 你持有损坏的包

python - 如何删除不需要的阈值扩展?

python - Python 3.4 上的 GetProcAddress 奇怪行为

Python + MySQLdb executemany

python - python类继承的基本用法

Python围绕相机轴旋转图像