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.

  • מקטעי קו LSDfind_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).

Commits: 5a3153c8b, cbe2a4aeb

קבועי מידת פריים לא חוקיים הוסרו (משני)

קבועי מידת הפריים הלא חוקיים 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 העבודה הטיפוסית היא:

  1. כתבו מחדש קריאות ל-find_line_segments() עבור פרמטרי LSD (merge_distance / max_theta_diff) והעבירו את העיבוד הזה מחוץ ל-M4 (שיפוץ ה-LSD).

  2. החליפו את קבועי מידת הפריים שהוסרו ברזולוציה נתמכת (הסרת מידת הפריים).

  3. העבירו זיהוי קוד QR מ-M4 ללוח M7 (שינוי ה-find_qrcodes).

  4. אמתו מחדש התנהגות ספציפית-לגרסה מול MicroPython 1.9.2 (עדכון ה-MicroPython).

כל שאר הסקריפטים פועלים ללא שינוי.