2017-07-17 8 views
-1

私はopencvをC++で使い、画像上の点に印をつけています。私はmain機能のこれらの点を返すしたいと思います。私はポイントをマークする機能を使用しています。C++のmain関数にベクトルを渡す方法

int n=4; 
int TOTAL_POINTS=n; 
Point pt; 
vector<Point> capturePoint = vector<Point>(); 

void CallBackFunc(int event, int x, int y, int flags, void* param) 
{ 
    //Mat& image= *(Mat*) param; 

    if (event == CV_EVENT_LBUTTONDOWN){ 
     pt.x = x; 
     pt.y = y; 
     cout << "Point" << TOTAL_POINTS + 1 - n << "(" << x << "," << y << ")" << endl; 
     capturePoint.push_back(pt); 
     n--; 
     //circle(mouseDetector::workingMat,pt,2,Scalar(0,0,255), 5); 
     if(n==0){ 
      cvDestroyAllWindows(); 
     } 
    } 
} 

setMouseCallback("Display window", CallBackFunc, (void*)&FrameMat); 

がどのように私は私のmain機能でcapturePointベクトル値を得ることができるように私はmainからこれを呼び出すのですか?

+3

グローバルになっているのでアクセスできますか? – deW1

+0

しかし、このベクトルに値が渡されないようなnull値を示しています。 – abhi

+0

あなたのメイン関数でマウスクリックイベントが発生するのを待つことはありません。なぜあなたはあなたの主な機能にそれを必要としますか?コールバック関数にそのベクトルを使用するコードを追加できませんか? –

答えて

0

私は解決策を得る。私はそれをグローバルに宣言し、その値はメインでも利用可能です。

関連する問題