-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
からこれを呼び出すのですか?
グローバルになっているのでアクセスできますか? – deW1
しかし、このベクトルに値が渡されないようなnull値を示しています。 – abhi
あなたのメイン関数でマウスクリックイベントが発生するのを待つことはありません。なぜあなたはあなたの主な機能にそれを必要としますか?コールバック関数にそのベクトルを使用するコードを追加できませんか? –