简单的OpenCV的项目 - 检测和跟踪网球(Simple OpenCV project - det

2019-06-25 13:29发布

我有一个项目,我需要用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;
}

Answer 1:

你有没有尝试谷歌你的问题? 大约有许多信息。

简单的想法是未来:利用检测你的对象颜色阈值 (它似乎是黄色或白色)和圆检测 。 球deteccted后,你只是需要跟踪它使用(例如) 卢卡斯-卡纳德方法 。

下面是一些指南/手册:

  1. 跟踪彩色物体的OpenCV
  2. 运动分析和对象跟踪
  3. 学习的OpenCV
  4. 看看OpenCV中的文件夹中samples 。 There'are很多非常有用的例子。 在您的情况最好的例子就是samples/cpp/lkdemo.cpp


文章来源: Simple OpenCV project - detecting and tracking a tennis ball