在类中调用opencv的setMouseCallback

    static void OnMouse(int event, int x, int y, int flags, void*userdata);
    void On_Mouse(int event, int x, int y);
    void RunMain();
	void TrackExecutor::OnMouse(int event, int x, int y, int flags, void *userdata)
	{
	    TrackExecutor* temp = reinterpret_cast<TrackExecutor*>(userdata);
	    temp->On_Mouse(event,x,y);
	}
	
	void TrackExecutor::On_Mouse(int event, int x, int y)
	{
	    if(event == EVENT_LBUTTONDOWN)
	    {
	        _pre_point =  Point(x,y);
	        _start_drag = true;
	    }
	
	    if(_start_drag)
	    {
	        _rect.x_min = min(_pre_point.x,x);
	        _rect.y_min = min(_pre_point.y,y);
	        _rect.x_max = max(_pre_point.x,x);
	        _rect.y_max = max(_pre_point.y,y);
	        _selection = true;
	    }
	
	    if(event == EVENT_LBUTTONUP)
	    {
	        _start_drag = false;
	        _selection = false;
	        _start_tarck = true;
	        if(_rect.x_max-_rect.x_min>0 && _rect.y_max-_rect.y_min){
	//            cout<<rect.x_max-rect.x_min;
	            Rect r(_rect.x_min,_rect.y_min,_rect.x_max-_rect.x_min,_rect.y_max-_rect.y_min);
	            _tracker.init(r,_frame);
	        }
	    }
	}
	setMouseCallback("KcfTrackerWindow", OnMouse, this);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值