v2.6.0¶
يحدّث الإصدار v2.6.0 النواة إلى MicroPython 1.9.2، ويبدّل find_line_segments() إلى خوارزمية LSD، ويضيف دعم مستشعر MT9V034 ذي المصراع الشامل، وتصحيح المنظور image.rotation_corr()، وsensor.sleep()، وحفظ الصور الخام، وأعمالاً تأسيسية للوحة OpenMV 4. لقد تغيّر سلوك find_line_segments() وعدّة أحجام إطارات وسلوك MicroPython — اقرأ التغييرات الكاسرة أدناه.
أبرز النقاط¶
تحديث نواة MicroPython 1.9.2.
قطع خطوط LSD — تستخدم
find_line_segments()الآن خوارزمية كاشف قطع الخطوط (Line Segment Detector).دعم مستشعر MT9V034 ذي المصراع الشامل.
image.rotation_corr()— تصحيح دوران المنظور على المحاور X/Y/Z.وضع السكون البرمجي
sensor.sleep()وحفظ الصور الخام (غير المضغوطة).كاسر: تغيّرت معاملات
find_line_segments()وعدّة ثوابت لأحجام الإطارات وسلوك MicroPython — راجع التغييرات الكاسرة.
ميزات جديدة¶
image.rotation_corr()— أُضيف تصحيح دوران المنظور على المحاور X/Y/Z مع مثالrotation_correction.py.sensor.sleep(enable)— وضع الكاميرا في وضع سكون برمجي (مع مثال على وضع السكون).الصور الخام — يستطيع
image.save()الآن كتابة صور خام (غير مضغوطة).MT9V034 — أُضيف دعم مستشعر ذي مصراع شامل، مع إتاحة الثابت
sensor.MT9V034.أُضيف مثال
lens_correction.pyللدالةimage.lens_corr()وملفات دعم لوحة OpenMV 4 (أعمال تأسيسية لإعداد اللوحة / محمّل الإقلاع / الرابط).
تغييرات وتحسينات أخرى¶
حُدِّثت نسخة MicroPython المرفقة إلى 1.9.2 (سباكة منفذ 1.9، oofatfs)؛ وأُعيدت كتابة
find_line_segments.pyلواجهة LSD الجديدة (مع إيقاف تصحيح العدسة افتراضياً)؛ وحُدِّثت واجهةopenmvعلى جانب المضيف (init(portname)/exec_script/stop_script)؛ وخُفِّض تردد ساعة المستشعر في OpenMV Cam M4 (أقصى عدد إطارات أقل على M4)؛ ويستخدم زر الإيقاف في الـ IDE الآن استثناءً قسرياً صارماً لمقاطعة البرامج النصية بموثوقية أكبر.
إصلاحات الأخطاء¶
أُصلح ترك
image.lens_corr()لبكسلات قديمة (يُمسح مخزن الوجهة الآن قبل إعادة الترسيم)، واستخدامblob.density()للقسمة الصحيحة (كانت تُرجع 0 دائماً، #268)، وتعيين دبوس UART في OpenMV 2 (M4)، وحُدِّثqrcodes_with_lens_corr.pyلاستخدام QVGA.
دعم العتاد واللوحات¶
مستشعر MT9V034 ذو المصراع الشامل.
OpenMV 4 — ملفات دعم اللوحة (أعمال تأسيسية).
OpenMV 2 (M4) — إصلاح تعيين دبوس UART.
تغييرات كاسرة في الواجهة البرمجية¶
تغييرات كاسرة مرئية للمستخدم في الواجهة البرمجية بين v2.5.0 وv2.6.0. النطاق: وحدات Python بلغة C في modules/ ومكتبات Python في scripts/libraries/.
كل تغيير موسوم بمدى تأثيره:
رئيسي — يؤثّر في معظم البرامج النصية التي استخدمت الميزة؛ ستحتاج إلى نقل الشيفرة.
ثانوي — واجهة برمجية ضيقة؛ يؤثّر فقط في البرامج النصية التي استخدمتها.
سلوكي — الواجهة نفسها لكن النتائج مختلفة؛ أعد فحص البرامج النصية المضبوطة.
التغييرات مجمّعة حسب التأثير بهذا الترتيب. إذا كنت ترغب فقط في نقل شيفرتك، فانتقل إلى قائمة التحقق للترحيل في النهاية. يرتبط كل تجزئة لإيداع (hash) بفرقه على GitHub.
تبديل find_line_segments() إلى LSD (رئيسي)¶
أُعيدت كتابة image.find_line_segments() لاستخدام خوارزمية كاشف قطع الخطوط (LSD). استُبدلت المعاملات القديمة threshold / theta_margin / rho_margin / segment_threshold / x_stride / y_stride بـ merge_distance وmax_theta_diff (مثل find_line_segments(merge_distance=0, max_theta_diff=15)). كما لم تعد متاحة على لوحات فئة M4 (OpenMV 2).
إزالة ثوابت أحجام الإطارات غير الصالحة (ثانوي)¶
أُزيلت ثوابت أحجام الإطارات غير الصالحة sensor.QQQQCIF / QQQCIF / QQQQSIF / QQQSIF / HQQQQVGA / HVGA (#261). يجب على البرامج النصية التي تستخدمها التبديل إلى دقة مدعومة.
الإيداعات: 35ab0a26f
إزالة find_qrcodes() على OpenMV Cam M4 (ثانوي)¶
لم تعد image.find_qrcodes() مُترجَمة على لوحات فئة M4 (OpenMV 2). استخدم لوحة OpenMV 3 (M7) أو ميزة شيفرة أخرى لكشف رموز QR على عتاد M4. أما اللوحات الأخرى فلا تتأثر.
الإيداعات: 7dff089e6
تحديث MicroPython إلى 1.9.2 (سلوكي)¶
حُدِّثت نواة MicroPython المرفقة إلى 1.9.2. يتبع سلوك المكتبة القياسية واللغة نسخة MicroPython 1.9.2 الأصلية — أعد فحص البرامج النصية التي تعتمد على سلوك خاص بنسخة معينة. وعلى نحو لافت، فإن تقطيع صورة بخطوة غير 1 يثير الآن OSError بدلاً من NotImplementedError.
الإيداعات: 11bed4b99
قائمة التحقق للترحيل¶
للحصول على نقل نظيف إلى v2.6.0، العمل المعتاد هو:
أعد كتابة استدعاءات
find_line_segments()لمعاملات LSD (merge_distance/max_theta_diff) وانقل تلك المعالجة بعيداً عن M4 (إعادة هيكلة LSD).استبدل ثوابت أحجام الإطارات المُزالة بدقة مدعومة (إزالة أحجام الإطارات).
انقل كشف رموز QR من M4 إلى لوحة M7 (تغيير find_qrcodes).
أعد التحقق من السلوك الخاص بالنسخة مقابل MicroPython 1.9.2 (ترقية MicroPython).
تعمل جميع البرامج النصية الأخرى دون تغيير.