Какой самый быстрый способ масштабирования и отображения изображения в Python?
Я должен отображать двумерный numpy.массив int16 на 20fps или около того. Использование imshow Matplotlib подавляет что-либо выше 10fps. Очевидно, что есть некоторые проблемы с масштабированием и интерполяцией. Я должен добавить, что размеры массива неизвестны, но, вероятно,будут около тридцати на четыреста.
Это данные от датчика, который должен иметь дисплей в реальном времени, поэтому данные должны быть повторно отобраны на лету.
1 ответов
самый быстрый способ отображения точек данных 30x400-это:
используйте цветные массивы OpenGL
Если вы можете быстро преобразовать свои данные в то, что OpenGL понимает как цветовой массив, вы можете создать массив вершин, описывающий квадроциклы, по одному для каждого датчика, а затем обновить свой цветовой массив и нарисовать это орфографически на экране.
использовать текстуры OpenGL
Если вы можете быстро преобразовать свои datapoints в текстуру opengl, вы можете нарисовать один quad с фиксированным УФ-координаты, связанные с этой текстурой.
использовать pygame
Pygame имеет поддержку для преобразования Numpy / Numarray к поверхностям, Pygame может после этого преобразовать такие поверхности которая включает resampling, после resampling вы можете blit оно на экране.
- разное
pyglet делает дело с OpenGL очень легко