【问题标题】:Simple OpenCV project - detecting and tracking a tennis ball简单的 OpenCV 项目 - 检测和跟踪网球
【发布时间】:2012-06-18 15:02:16
【问题描述】:

我有一个项目,我需要使用 OpenCV 来检测网络摄像头上的物体(网球),并在我将它滚过桌子时跟踪它以获得奖励。

我没有太多运气找到这方面的信息,因为我使用的是 OpenCV 2.4、C++,而且很多信息都在较旧的 OpenCV 版本中。我已经阅读了很多关于不同方法的文章,但我只是不知道如何在我的代码中实现它。

任何帮助将不胜感激,尤其是关于如何将检测/跟踪功能集成到我的代码中

到目前为止,这是我的代码,我认为应用过滤器后应该执行图像检测/跟踪代码:

//Includes & Namespaces
#include "cv.h"
#include "highgui.h"
#include <iostream>
using namespace cv;
using namespace std;


//Main Function
int main(int, char**)
{
    VideoCapture vid(0); //Capture from Webcam
    if(!vid.isOpened()) //Error Check for Webcam
    {
        cout << "Could not open camera" << endl;
        return -1;
    }

    Mat pic; //Create Matrix to store image
    namedWindow("video",1); //Open Window

    for(;;) //Infinite loop
    {
        Mat frame; //Create Matrix for a single frame
        vid >> frame; //Transfer from webcam to matrix

        //Filters
        cvtColor(frame, pic, CV_BGR2HSV);
        GaussianBlur(pic, pic, Size(7,7), 1.5, 1.5);

        /*Image Detection Here */           

        imshow("Picture", pic); //Show image

        if(waitKey(30) >= 0)
        break;
    }
    return 0;
}

【问题讨论】:

标签: opencv object-detection video-tracking


【解决方案1】:

您是否尝试用谷歌搜索您的问题?有很多关于这方面的信息。

接下来是一个简单的想法:使用color thresholding(似乎是黄色或白色)和circle detection 检测您的对象。检测到球后,您只需使用(例如)Lucas-Kanade method 跟踪它。

这里有一些指南/手册:

  1. Tracking colored objects OpenCV
  2. Motion Analysis and Object Tracking
  3. Learning OpenCV
  4. 查看 OpenCV 的文件夹samples。有很多非常有用的例子。在您的情况下,最好的例子是samples/cpp/lkdemo.cpp

【讨论】:

    猜你喜欢
    • 2017-08-08
    • 2021-01-15
    • 2020-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多