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). تعمل جميع البرامج النصية الأخرى دون تغيير.