opencv中 主函数怎么调用我在mouseHandler函数中算出的一个值

staticintdmax;staticvoidmouseHandler(intevent,intx,inty,int,void*){if(event==CV_EVENT... static int dmax;

static void mouseHandler(int event, int x,int y ,int , void*)
{

if( event == CV_EVENT_LBUTTONDOWN)

{

Point sp = Point(x,y);

//cout<<"x="<<sp.x<<"\t y="<<sp.y<<"\t value="<<src.at<Vec3b>(y,x)<<endl;

int a = src.at<Vec3b>(y,x)[0];

int b = src.at<Vec3b>(y,x)[1];

int c = src.at<Vec3b>(y,x)[2];

//cout<<a<<'\t'<<b<<'\t'<<c<<endl;

dmax = sqrt(pow(a,2)+pow(b,2)+pow(c,2));
}
}

int main()
{ ....
int dmin = 0;
createTrackbar( " Threshold:", "dst", &dmin, dmax, onTrackbar);

....
}

我想在main函数中 createTrackbar 里面 调用 我mouseHandler里得出来的dmax值
请问 能实现吗?要怎样去实现?
展开
 我来答
White_MouseYBZ
2014-11-08 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6774万
展开全部
有好多办法可以实现:
可以把mouseHandler设计成有返回值的函数,计算出dmax后返回此值,在createTrackbar中直接调用mouseHandler就可以。
可以把dmax定义为全局变量,在createTrackbar 中直接引用这个值。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式