我在.Net的这个项目中工作(是的,我知道,我应该使用不同的东西)。我们的想法是能够跟踪一个在桌子上移动的球,照明情况通常是相同的,背景是静止背景,没有其他物体干扰,并且总是只有一个球被跟踪。
视频采集部分已完成,因为我在球运动时捕获25 fps,因此我得到了25个具有不同球位置的图像,以及背景初始图像,因此我可以运行滤镜以尝试提取只是球,找到中心。有太多的信息四处流淌,我不确定从哪个部分开始,因为这听起来很容易,但我仍然对计算机视觉毫无头绪。
答案 0 :(得分:0)
这似乎是CamShift algorithm的问题。
CamShift是一种跟踪对象的算法。该算法的一个常见用途是跟踪具有独特颜色的对象。
首先需要通过拍摄球的图像来初始化算法,将图像转换为HSV颜色空间,并调整通道上的阈值,使得只有球将在范围内(在下方之间)和每个频道的上限阈值),而背景则不会。
CamShift算法将在每个帧中搜索最邻近像素在这些范围内的位置。根据前一帧中对象的位置搜索位置(因此称为跟踪)。
其次,您可以将Hough Transform用于圆圈,以便检测球的圆形形状。这应该在第一帧中为您提供球的初始位置,然后通过下一帧跟踪它。此外,它将为您提供球的确切边界。
这两个算法都在OpenCV中实现,幸运的是,有.net
- See this thread的几个包装库。
这是一个在Python
中执行此操作的人,看起来不错:Fast Object Tracking – Robot Computer Vision
希望这足以让你顺利前行。祝你好运!