3

私は、OpenCV を使用して Web カメラ上のオブジェクト (テニス ボール) を検出する必要があるプロジェクトを持っています。ボーナス クレジットとして、テーブルの上を転がしたときにそれを追跡します。

私は 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;
}
4

1 に答える 1

9

あなたはあなたの質問をグーグルしようとしましたか?それについては多くの情報があります。

次の簡単なアイデアは、色のしきい値処理(黄色または白色のようです)と円の検出を使用してオブジェクトを検出することです。ボールが検出されたら、(たとえば)Lucas- Kanadeメソッドを使用してボールを追跡する必要があります。

ここにいくつかのガイド/マニュアルがあります:

  1. 色付きのオブジェクトの追跡OpenCV
  2. モーション分析とオブジェクトトラッキング
  3. OpenCVの学習
  4. OpenCVのフォルダを見てくださいsamples。非常に便利な例がたくさんあります。あなたの状況では、最良の例はsamples/cpp/lkdemo.cppです。
于 2012-06-18T16:28:23.793 に答える