2015-04-02 1 views
0

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

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

(Windows 8, NVIDIA Quattro K2100, VC++)

ответ

1

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

while (!viewer.done()) 
    { 
     cv::waitKey(1); 
     viewer.frame(); 
    }