У меня есть простое окно, содержащее простое черное изображение с небольшим сплошным кругом внутри него. Я написал простой код, чтобы перетащить этот круг. Я мог бы сделать это правильно. Внутри функции mouse_event:Остановка рендеринга OpenCV при перемещении мыши
void on_mouse_event(int event_type, int x, int y, int flags, void*){
if (event_type == cv::EVENT_RBUTTONDOWN){
//Catch the circle
}
else if (event_type == cv::EVENT_MOUSEMOVE){
//Release the point
}
else if (event_type == cv::EVENT_MOUSEMOVE){
//Change circle position according to curser moving
//re draw the circle again
//show the new image
}
}
Основная функция:
while (true){
//show image code (simple cv::imshow);
if (cv::waitKey(1) == 27){
break;
}
}
Проблема заключается в том, что если я перетащить круг и начать двигаться быстро, изображение не изменится, пока не остановится. Однако, если я пойду медленно, это изменится в соответствии с ходом. В чем причина этой проблемы? P.S Я вообще не сомневаюсь в медленном оборудовании. Я работаю на рабочей станции, и я наставляю использование процессора, и только один из его 8-ядерных приложений достигает 50%, а память почти бесплатна.
Я использую Windows 10, если это помогает.