2017-07-17 88 views
-1

我使用opencv与c + +和标记图像上的点。我想在我的main函数中返回这些点。我正在使用该功能来标记点。如何将向量传递给主函数在c + +

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(); 
     } 
    } 
} 

我从main作为

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

我怎样才能得到我main功能capturePoint矢量值调用此?

+3

由于它们是全球性的,您只需访问它们? – deW1

+0

但它显示空值,就像没有值传递给这个向量。 – abhi

+0

猜你不会在主要函数中等待鼠标点击事件。你为什么需要它在你的主要功能?你不能添加使用该向量回调函数的代码吗? –

回答

0

我得到的解决方案。我已经在全球范围内声明了它,然后它的值也可以在main中获得。