Я выполняю проект под рукой Отслеживание с использованием функции библиотеки OpenCV. Используя функцию Camshift()
, я смог отслеживать свои руки, но это было не совсем стабильно, даже если я уверен, что моя рука стабильна, в отслеживании мало движения. Поэтому я не смог выполнить операцию щелчка мыши в правильном положении. Кто-то, пожалуйста, помогите мне разобраться в этом.Как сгладить отслеживание в CamShift
void TrackingObjects::drawRectangle(CvRect objectLocation){
CvPoint p1, p2,mou;
CvRect crop;
p1.x = objectLocation.x;
p2.x = objectLocation.x + objectLocation.width;
p1.y = objectLocation.y;
p2.y = objectLocation.y + objectLocation.height;
cvRectangle(image,p1,p2,CV_RGB(0,255,0),1,CV_AA,0);
mou.x=(p2.x-p1.x)/2;
mou.x=p1.x+mou.x;
mou.y=(p2.y-p1.y)/2;
mou.y=p1.y+mou.y;
SetCursorPos(mou.x,mou.y);
}
В коде выше я получаю гусеничное местоположение объекта по obectLocation
параметру и я нарисовала прямоугольник на гусеничную области. Получив его центр, я сделал движение мыши.
При закрытии ладони, чтобы сделать событие MouseDown
, положение отслеживаемого объекта изменилось.
В чем вопрос? – Safir