سؤال

أنا مطالب بعرض numpy.array ثنائي الأبعاد لـ int16 بمعدل 20 إطارًا في الثانية أو نحو ذلك.يؤدي استخدام imshow الخاص بـ Matplotlib إلى الاختناق على أي شيء يزيد عن 10 إطارات في الثانية.من الواضح أن هناك بعض المشكلات المتعلقة بالقياس والاستيفاء.يجب أن أضيف أن أبعاد المصفوفة غير معروفة، ولكن من المحتمل أن تكون حوالي ثلاثين × أربعمائة.

هذه هي البيانات من جهاز استشعار من المفترض أن يتم عرضه في الوقت الفعلي، لذلك يجب إعادة أخذ عينات من البيانات بسرعة.

هل كانت مفيدة؟

المحلول

أسرع طريقة لعرض نقاط البيانات 30×400 هي:

استخدم صفائف الألوان OpenGL

إذا كان بإمكانك تحويل بياناتك بسرعة إلى ما يعرفه OpenGL على أنه مصفوفة ألوان، فيمكنك إنشاء مصفوفة قمة تصف الأرباع، واحدة لكل مستشعر، ثم قم بتحديث مصفوفة الألوان الخاصة بك ورسمها بشكل إملائي على الشاشة.

استخدم قوام OpenGL

إذا كان بإمكانك تحويل نقاط البيانات الخاصة بك بسرعة إلى نسيج opengl، فيمكنك رسم رباعي واحد بإحداثيات UV ثابتة مرتبطة بهذا النسيج.

استخدم بيغامي

لدى Pygame دعم لتحويل Numpy/Numarray إلى الأسطح، ويمكن لـ Pygame بعد ذلك تحويل هذه الأسطح التي تتضمن إعادة التشكيل، وبعد إعادة التشكيل يمكنك مسحها على الشاشة.

متنوعات

بيجليت يجعل التعامل مع opengl سهلاً للغاية

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top