Pergunta

eu sou obrigado a exibir um numpy.array bidimensional de int16 a 20fps ou assim. Usando bobinas imshow de matplotlib em qualquer coisa acima de 10 fps. Há obviamente alguns problemas com raspagem e interpolação. Devo acrescentar que as dimensões da matriz não são conhecidas, mas provavelmente será em torno de trinta por quatrocentos.

Estes são dados de um sensor que é suposto ter uma visualização em tempo real, de modo que os dados têm que ser re-amostrados em tempo real.

Foi útil?

Solução

A maneira mais rápida para exibir 30x400 pontos de dados é:

Use OpenGL matrizes de cores

Se você pode transformar rapidamente seus dados para o OpenGL entende como uma matriz de cor, você pode criar uma matriz de vértice descrevendo quads, um para cada sensor, em seguida, atualizar a matriz de cor e desenhar esse ortograficamente na tela.

Use OpenGL texturas

Se você pode rapidamente transformar os seus pontos de dados para uma textura OpenGL você pode desenhar um quad com coordenadas UV fixos que é obrigado a esta textura.

Use pygame

Pygame tem suporte para conversão de Numpy / Numarray a superfícies, Pygame pode, então, transformar essas superfícies que envolve resampling, depois de reamostragem pode blit-lo na tela.

Misc

pyglet faz lidar com OpenGL muito fácil

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top