Окно OSG блокирует обновление окна OpenCV

У меня есть приложение, которое показывает (обработанный) вывод веб-камеры в окне OpenCV (используя imshow), а также в другом потоке имеет окно OSG, показывающее некоторую геометрию. Проблема в том, что пока обновляется окно OSG, окно OpenCV не обновляется (происходит вся обработка в потоке, просто вызов imshow ничего не делает). Если я перетащу окно OSG, отключив обновления, окно OpenCV начнет нормально обновляться.

Любые идеи, почему это могло произойти?

(Windows 8, NVIDIA Quattro K2100, VС++)


person Qwerty    schedule 02.04.2015    source источник


Ответы (1)


Вам нужно вызвать функцию cv::waitKey() внутри цикла просмотра OpenSceneGraph, чтобы обновить окна OpenCV. Это означает, что вы не можете просто использовать функцию OpenSceneGraph viewer.run(). Вместо этого вы должны использовать следующий цикл просмотра:

while (!viewer.done())
    {
        cv::waitKey(1);
        viewer.frame();
    }
person Björn Blissing    schedule 10.02.2016