v2.8.0#

الإصدار v2.8.0 إصدار ضخم. فهو يطلق OpenMV Cam H7 (STM32H7) مع مُرمِّز JPEG عتادي وADC/DAC الخاصين بـ H7، وإعادة هيكلة هائلة لواجهة image (سُمك/تعبئة الرسم، عمليات رياضية/ثنائية، مرشحات جديدة كثيرة، عتبة Otsu)، وخيوط MicroPython، ووحدة الإصدار omv. وقد ثُبِّت ترتيب تحليل معاملات Python وأُزيلت image.mask_ellipse() — اقرأ التغييرات الكاسرة أدناه.

أبرز النقاط#

  • OpenMV Cam H7 — لوحة STM32H7 جديدة مع مُرمِّز JPEG عتادي وADC / DAC الخاصين بـ H7.

  • إعادة هيكلة image — سُمك الخطوط، تعبئة الأشكال، draw_arrow() / draw_image()، عمليات رياضية/ثنائية كاملة، ومرشحات جديدة كثيرة.

  • عتبة Otsuhistogram.get_threshold() وكائن Threshold.

  • الخيوط — دعم _thread في MicroPython.

  • وحدة omv — معلومات الإصدار / اللوحة.

  • كاسر: أصبح ترتيب المعاملات الموضعية في Python صارماً وأُزيلت image.mask_ellipse() — راجع التغييرات الكاسرة.

ميزات جديدة#

  • OpenMV Cam H7 — دعم لوحة STM32H7 مع مُرمِّز JPEG عتادي وADC الخاص بـ H7 وDAC الخاص بـ H7.

  • الرسم — أُضيف thickness للخطوط، وfill للأشكال (مستطيل / دائرة)، وscale / المباعدة للنص، ومعامل mono_space على draw_string()، وimage.draw_arrow()، وimage.draw_image() (رسم العفريت / القناع).

  • العمليات الرياضية — أُضيفت add()، وsub()، وmul()، وdiv()، وmin()، وmax()، وdifference()، وblend()، وreplace() (مع hmirror / vflip / mask)، وremove_shadows()؛ وتقبل العمليات الأساسية الآن قيمة عددية/لونية تُطبَّق على كل البكسلات.

  • الثنائي / المورفولوجيا — نوع صورة ثنائي جديد وbinary()؛ وتقبل عمليات الخطوط وerode() / dilate() الأقنعة؛ وأُضيفت open() / close() / top_hat() / black_hat().

  • المرشحات — أُضيفت cartoon، وflood_fill، وbilateral، وlaplacian، والأسماء البديلة blur / gaussian_blur، ومعادلة المدرج التكراري التكيفية (histeq(adaptive=, clip_limit=, mask=)).

  • الإحصاءات — تقبل get_statistics() / get_histogram() قائمة عتبات لونية وinvert؛ وأُضيفت عتبة Otsu histogram.get_threshold() وكائن Threshold.

  • CMSIS CNN — أُضيفت image.classify_object() مع مثال cnn.py (حلّت محلها وحدة nn في v3.0.0).

  • الخيوط — تمكين وحدة _thread في MicroPython.

  • وحدة omv — أُضيفت معلومات الإصدار (version_string، arch، board_type، board_id)؛ وتمكين ناقل I2C4 في machine والدوال الرياضية الخاصة (erf، gamma، …)؛ وأُضيفت أمثلة درع المحركات وبرامج نصية جديدة كثيرة للأمثلة.

تغييرات وتحسينات أخرى#

  • خُفِّضت ساعة المستشعر الخارجية لـ H7 إلى 48 ميغاهرتز (جودة صورة أفضل، عدد إطارات أقل)؛ وأصبحت جودة JPEG المنخفضة/المرتفعة قابلة للضبط حسب اللوحة (ومضبوطة لـ H7)؛ وأُضيفت بوابة ميزات imlib_config.h لكل لوحة (تبقى جميع دوال الصورة مُمكَّنة في البرنامج الثابت القياسي)؛ وحُدِّثت نسخة MicroPython المرفقة.

إصلاحات الأخطاء#

التصوير:

  • أُصلح image.save() بلا امتداد ملف، وتعيين gain_db / gain_db_ceiling لـ OV2640 / OV7725 / OV9650 / MT9V034، والكسب المفرط في sharpen()، وضوضاء الحواف المورفولوجية، وقسمة على صفر في إحدى عمليات الصورة، وعطل تحطيم المكدس عند حجم نواة مرشح أكبر من اللازم (أصبح الآن خطأً نظيفاً).

النظام:

  • حُمي مخزن USB VCP بقسم ذرّي (تلف تسلسلي، ‎#313)، وأُصلح اتصال USB على Windows، وتركيب نظام ملفات الفلاش الداخلي إذا فشلت بطاقة SD، وقيمة set_frequency() ‏PLLP في cpufreq، وخطأ في تثبيت البرنامج الثابت من محمّل الإقلاع.

دعم العتاد واللوحات#

  • OpenMV Cam H7 (STM32H7) — لوحة جديدة مع مُرمِّز JPEG عتادي وADC / DAC الخاصين بـ H7.

  • machine — تمكين ناقل I2C4.

تغييرات كاسرة في الواجهة البرمجية#

تغييرات كاسرة مرئية للمستخدم في الواجهة البرمجية بين v2.7.0 وv2.8.0. النطاق: وحدات Python بلغة C في modules/ ومكتبات Python في scripts/libraries/.

كلا التغييرين الكاسرين ثانوي ولا يؤثّران إلا في البرامج النصية التي استخدمت الميزة المعنية. يرتبط كل تجزئة لإيداع (hash) بفرقه على GitHub.

أصبح ترتيب المعاملات الموضعية في Python صارماً (ثانوي)#

أصبح تحليل المعاملات عبر وحدات Python بلغة C (image / sensor / fir / gif / lcd / mjpeg) يقرأ الآن المعاملات الموضعية قبل المعاملات المسماة ويثبّت الترتيب الموضعي. ومع المعاملات المسماة الجديدة على دوال الرسم (إذ اكتسبت draw_line() / draw_rectangle() / draw_circle() / draw_string() / draw_cross() / draw_keypoints() معاملات thickness / fill / scale / size)، فإن الشيفرة التي مرّرت معاملات خارج الترتيب موضعياً — أو مرّرت color موضعياً بعد أحد المعاملات الجديدة — يجب أن تستخدم المعاملات المسماة أو الترتيب الموضعي الموثّق.

الإيداعات: e0e112468، fc74e70c3

إزالة image.mask_ellipse() (ثانوي)#

أُزيلت image.mask_ellipse(). يجب على البرامج النصية التي استدعتها إسقاط الاستدعاء أو استخدام منطقة اهتمام / صورة قناع صريحة بدلاً منها.

الإيداعات: d7159fba3

قائمة التحقق للترحيل#

مرّر المعاملات بالاسم (أو بالترتيب الموضعي الموثّق)، وخاصةً color على دوال الرسم (تغيير ترتيب المعاملات)، وأزل استدعاءات image.mask_ellipse() (إزالة mask_ellipse). تعمل جميع البرامج النصية الأخرى دون تغيير.