void onMouse(int event, int x, int y, int, void*) { if (selectObject) { selectionRegion.SetXMin(MIN(x, originMouse.x)); selectionRegion.SetYMin(MIN(y, originMouse.y)); selectionRegion.SetWidth(std::abs(x - originMouse.x)); selectionRegion.SetHeight(std::abs(y - originMouse.y)); } switch (event) { case CV_EVENT_LBUTTONDOWN: printf("buttondown: x:%d,y:%d\n",x,y); originMouse = Point(x, y); selectionRegion = IntRect(x, y, 0, 0); selectObject = true; break; case CV_EVENT_LBUTTONUP: selectObject = false; newregion = true; trackObject = -1; printf("buttonup: x:%d,y:%d,width:%d,height:%d\n", selectionRegion.XMin(), selectionRegion.YMin(), selectionRegion.Height(), selectionRegion.Width()); break; } }