Python で画像を拡大縮小して表示する最も速い方法は何ですか?
-
02-07-2019 - |
質問
int16 の 2 次元 numpy.array を 20fps 程度で表示する必要があります。Matplotlib の imshow を使用すると、10fps を超えるとチョークが発生します。スケーリングと補間に関しては明らかにいくつかの問題があります。配列の次元は不明ですが、おそらく 30 × 400 程度になることを付け加えておきます。
これらはリアルタイム表示が想定されているセンサーからのデータであるため、データはオンザフライで再サンプリングする必要があります。
解決
30x400 データ ポイントを表示する最速の方法は次のとおりです。
OpenGL カラー配列を使用する
データを OpenGL がカラー配列として認識するものにすばやく変換できる場合は、センサーごとに 1 つずつクワッドを記述する頂点配列を作成し、カラー配列を更新して、これを画面上に正投影的に描画できます。
OpenGL テクスチャを使用する
データポイントを opengl テクスチャにすばやく変換できる場合は、このテクスチャにバインドされた固定 UV 座標を持つ 1 つのクアッドを描画できます。
pygameを使用する
Pygame は Numpy/Numarray からサーフェスへの変換をサポートしており、Pygame はリサンプリングを伴うそのようなサーフェスを変換できます。リサンプリング後、画面上でブリットすることができます。
その他
子豚 opengl の扱いが非常に簡単になります
所属していません StackOverflow