怎么做简单的球追踪?

时间:2014-08-20 11:41:42

标签: .net computer-vision imaging

我在.Net的这个项目中工作(是的,我知道,我应该使用不同的东西)。我们的想法是能够跟踪一个在桌子上移动的球,照明情况通常是相同的,背景是静止背景,没有其他物体干扰,并且总是只有一个球被跟踪。

视频采集部分已完成,因为我在球运动时捕获25 fps,因此我得到了25个具有不同球位置的图像,以及背景初始图像,因此我可以运行滤镜以尝试提取只是球,找到中心。有太多的信息四处流淌,我不确定从哪个部分开始,因为这听起来很容易,但我仍然对计算机视觉毫无头绪。

1 个答案:

答案 0 :(得分:0)

这似乎是CamShift algorithm的问题。

CamShift是一种跟踪对象的算法。该算法的一个常见用途是跟踪具有独特颜色的对象。

首先需要通过拍摄球的图像来初始化算法,将图像转换为HSV颜色空间,并调整通道上的阈值,使得只有球将在范围内(在下方之间)和每个频道的上限阈值),而背景则不会。

CamShift算法将在每个帧中搜索最邻近像素在这些范围内的位置。根据前一帧中对象的位置搜索位置(因此称为跟踪)。

其次,您可以将Hough Transform用于圆圈,以便检测球的圆形形状。这应该在第一帧中为您提供球的初始位置,然后通过下一帧跟踪它。此外,它将为您提供球的确切边界。

这两个算法都在OpenCV中实现,幸运的是,有.net - See this thread的几个包装库。

这是一个在Python中执行此操作的人,看起来不错:Fast Object Tracking – Robot Computer Vision

希望这足以让你顺利前行。祝你好运!