OpenCV检测网后面的网球场线

时间:2016-08-21 18:20:48

标签: algorithm opencv computer-vision

我正在尝试使用手机录制的视频实施网球场探测器。我是从网球场的远角拍摄的。

原始图像就是这样。

Original Image

使用OpenCV Canny边缘检测和Hough Line转换,我能够检测到我自己的一半中的线,但不能检测网后面的线。我如何改进这个过程并获得未被发现的法庭线?

处理后的图像如下。

Processed Image

2016-08-25更新

谢谢你们。我理解通过将检测到的线拟合到模型线来导出球场线是有意义的。我不会尝试组合搜索来找到适合模型的最佳线条。因此,我一直在尝试分离水平/垂直线以降低计算复杂度。我尝试使用RANSAC来找到关联两个不同线组的消失点(VP),但可能因为检测错误(?)而失败。

极坐标中线参数的散点图如下。基本上将点分为两组:形成水平线的顶点;左下点也形成一条深坡线。反正有吗?感谢

Polar Coord

3 个答案:

答案 0 :(得分:3)

您无需检测网后面的线条。你知道地面是一个平面,你知道球场两侧的尺寸是相同的 - 所以你只需要检测附近的线,你就可以计算缺失线的位置。

事实上,如果你知道相机+镜头的特性,你真的只需要检测一个角落。

答案 1 :(得分:2)

除了Martin的评论之外,在运行边缘/线条检测之前,您可能会尝试在图像上使用某种模糊效果。通过一些调整,您应该能够移除网络信号并保持球场线。

另一种方法是通过从左到右扫描图像(例如)来将粗线减少到单个像素,以检测从红色/绿色到白色再到红色/绿色的转换。发生这种情况时,您可以估计这两个过渡点的中点是法院线的中点。这将为您提供可以直接输入Hough变换的数据。这当然要求您将单个像素分类为球场或线,这似乎是您目前没有做的。此过程也可以从上到下执行,以产生第二组中点估计值。

答案 2 :(得分:1)

对于模糊,请尝试使用双边滤镜

输入图像示例:

input image

cv2.bilateralFilter(img_gray,30,25,75)

输出图片:

blurred image without losing court information