2014-04-02 64 views
2

我试图在相似的彩色背景上检测彩色的网球。我使用的OpenCV和C++使用OpenCV进行动态背景分离和可靠的圆检测

这是测试图像我正在与工作: http://i.stack.imgur.com/yXmO4.jpg

我已经使用多个边缘检测器试图; 。三者都检测白线,但当阈值处于可检测网球边缘的值时,输出中的噪声太大。

我也尝试了霍夫圆变换,但是因为它基于,所以它不起作用。

我不能使用背景减法,因为背景可以移动。我也无法修改阈值,因为照明条件可能会在网球内产生渐变。

我觉得我唯一的选择是太模板匹配或检测白线,但是我想尽可能避免这种情况。

你有什么建议吗?

+0

“我不能使用背景减法,因为背景可以移动” - 你的意思是,相机移动? – berak

+0

不完全。背景是穿着彩色衬衫的人,他们不会静止。 – Byron

+0

看看纹理检测。我本人并没有使用它,但是你可以使用这个事实,即球具有其他光反射特性。说实话:你选择了一个坚硬的案例,不知道是否会永远是可靠的,很大程度上取决于你想实现闪电和背景的灵活性...... –

回答

0

我不得不倾斜我的屏幕来自己发现网球。这是一个很难的形象。也就是说,Hough变换的默认OpenCV实现使用了Canny边缘检测器,但它不是唯一可能的实现。对于这些困难的情况,您可能需要自己重新实现。

你肯定可以用不同的边缘检测设置重复运行Hough算法来生成多个候选。除了直接比较候选人之外,您还可以检查每个候选人是否具有主导纹理(在本地阴影校正之后)以及可能的条纹。但如果这些网球实际上在飞行中被捕获,即移动,那可能会非常棘手。

+0

我正在调查这件事,并会让你知道。我正在寻找一些相对快速的实现算法。 – Byron

0

在边缘检测之前,您对彩色图像做什么?简单地将其转换为灰色?

以我的经验,当您使用HSV色彩空间时,五颜六色的球弹出效果最佳。那么你将不得不决定哪个频道给出最好的结果。

也许将图像转换到不同的特征空间可能会更好,然后依靠颜色。也许尝试LBP响应纹理。然后对结果进行PCA以将特征空间减少为1个单通道图像,并尝试Hough变换。

+0

我现在使用HSV颜色空间进行颜色阈值处理。什么是PCA? – Byron

+0

HSV听起来像个好主意。当具有高维特征空间时,减少特征空间的常用方法是使用PCA。这里有一篇关于如何在OpenCV中使用PCA的博客:http://www.bytefish.de/blog/pca_in_opencv/ –