Estou escrevendo código C++/opencv para algumas rotinas de processamento de imagem e usando a webcamera do Dell Precision 7730 para obter entrada de vídeo de teste. A placa de vídeo é a Quadro P5200.
Comecei no Windows 10 usando VSE 2015 e opencv 4.1.0. Lá posso capturar vídeo de webcam de 1280x720 e exibi-lo a 30fps, ou qualquer taxa que a câmera esteja emitindo.
Mas recentemente mudei para o Ubuntu 18.04 com Eclipse (instalado no segundo SSD) porque com nosso protótipo de câmera externa real, que envia vídeo por pacotes UDP para a porta Ethernet, o Windows estava descartando muitos pacotes recebidos. (Esse é outro problema a ser resolvido mais tarde, mas o Ubuntu não causa a perda de pacotes - podemos recebê-los e exibi-los a 30fps.)
No entanto, agora no Ubuntu a webcam está limitando a <10fps usando essencialmente o mesmo código C++. Mesmo que eu não faça nada além de capturar (cap >> Mat) e exibir (imshow), geralmente cai em torno de 7,5fps.
No entanto, o aplicativo Ubuntu Cheese não parece ter esse problema, a taxa de quadros parece estar em 30fps.
Alguém sabe o que poderia estar acontecendo no Ubuntu para reduzir a taxa de quadros da webcam em um aplicativo opencv personalizado? E como consertar?
Observe que desativei os gráficos alternáveis no BIOS para estabilidade do Ubuntu, mas acho que isso só pode ajudar.