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 (תשתית להגדרת לוח / מאתחל (bootloader) / מקשר).
שינויים ושיפורים נוספים¶
עודכן ה-MicroPython המצורף ל-1.9.2 (חיווט פורט 1.9, oofatfs); נכתב מחדש
find_line_segments.pyעבור ה-API החדש של LSD (תיקון עדשה כבוי כברירת מחדל); עודכן ה-API שלopenmvבצד המארח (init(portname)/exec_script/stop_script); הונמך שעון החיישן של OpenMV Cam M4 (מספר פריימים מרבי נמוך יותר ב-M4); כפתור Stop ב-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.
שינויי API שוברי-תאימות¶
שבירות API נראות-למשתמש בין v2.5.0 ל-v2.6.0. היקף: מודולי C של Python בתוך modules/ וספריות Python בתוך scripts/libraries/.
כל שינוי מתויג לפי השפעתו:
מהותי — משפיע על רוב הסקריפטים שהשתמשו בתכונה; תצטרכו להסב את הקוד.
משני — API צר; משפיע רק על סקריפטים שהשתמשו בו.
התנהגות — אותו API, תוצאות שונות; בדקו מחדש סקריפטים מכוונים.
השינויים מקובצים לפי השפעה בסדר זה. אם אתם רק רוצים להסב את הקוד, דלגו אל רשימת הבדיקה להסבה בסוף. כל hash של commit מקושר ל-diff שלו ב-GitHub.
find_line_segments() עבר ל-LSD (מהותי)¶
image.find_line_segments() נכתב מחדש לשימוש באלגוריתם Line Segment Detector (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). סקריפטים המשתמשים בהם חייבים לעבור לרזולוציה נתמכת.
Commits: 35ab0a26f
find_qrcodes() הוסר ב-OpenMV Cam M4 (משני)¶
image.find_qrcodes() אינו מהודר עוד בלוחות ממחלקת M4 (OpenMV 2). השתמשו בלוח OpenMV 3 (M7) או בתכונת קוד אחרת לזיהוי QR בחומרת M4. לוחות אחרים אינם מושפעים.
Commits: 7dff089e6
MicroPython עודכן ל-1.9.2 (התנהגות)¶
ליבת ה-MicroPython המצורפת עודכנה ל-1.9.2. התנהגות ספריית התקן והשפה עוקבת אחר MicroPython 1.9.2 שבמעלה הזרם — בדקו מחדש סקריפטים התלויים בהתנהגות ספציפית-לגרסה. בפרט, פרוסת תמונה עם צעד שאינו 1 מעלה כעת OSError במקום NotImplementedError.
Commits: 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).
כל שאר הסקריפטים פועלים ללא שינוי.