【发布时间】: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;
}
【问题讨论】:
-
如果这是作业,请使用 [homework] 标签。
标签: opencv object-detection video-tracking