v2.6.0¶
v2.6.0 aktualisiert den Kern auf MicroPython 1.9.2, stellt find_line_segments() auf den LSD-Algorithmus um, fügt Unterstützung für den MT9V034-Global-Shutter-Sensor, die Perspektivkorrektur image.rotation_corr(), sensor.sleep(), das Speichern von Rohbildern und Vorarbeiten für die OpenMV-4-Platine hinzu. find_line_segments(), mehrere Framesizes und das Verhalten von MicroPython haben sich geändert – lesen Sie die nachstehenden Breaking Changes.
Highlights¶
Kern-Update auf MicroPython 1.9.2.
LSD-Liniensegmente –
find_line_segments()verwendet jetzt den Line-Segment-Detector-Algorithmus.Unterstützung für den MT9V034-Global-Shutter-Sensor.
image.rotation_corr()– Perspektivische Rotationskorrektur in X/Y/Z.sensor.sleep()Soft-Sleep-Modus und Speichern von Roh- (unkomprimierten) Bildern.Breaking: Die Parameter von
find_line_segments(), mehrere Framesize-Konstanten und das Verhalten von MicroPython haben sich geändert – siehe die Breaking Changes.
Neue Funktionen¶
image.rotation_corr()– Perspektivische Rotationskorrektur in X/Y/Z mit einem Beispielrotation_correction.pyhinzugefügt.sensor.sleep(enable)– Versetzt die Kamera in einen Soft-Sleep-Modus (mit einem Sleep-Modus-Beispiel).Rohbilder –
image.save()kann jetzt Roh- (unkomprimierte) Bilder schreiben.MT9V034 – Unterstützung für den Global-Shutter-Sensor hinzugefügt, der die Konstante
sensor.MT9V034bereitstellt.Ein Beispiel
lens_correction.pyfürimage.lens_corr()sowie Unterstützungsdateien für die OpenMV-4-Platine (Platinenkonfiguration / Bootloader / Linker-Vorarbeiten) hinzugefügt.
Weitere Änderungen und Verbesserungen¶
Das gebündelte MicroPython auf 1.9.2 aktualisiert (1.9-Port-Plumbing, oofatfs);
find_line_segments.pyfür die neue LSD-API neu geschrieben (Linsenkorrektur standardmäßig deaktiviert); die hostseitigeopenmv-API aktualisiert (init(portname)/exec_script/stop_script); den Sensortakt der OpenMV Cam M4 abgesenkt (niedrigere maximale FPS auf der M4); der Stop-Button der IDE verwendet jetzt eine harte erzwungene Ausnahme, um Skripte zuverlässiger zu unterbrechen.
Fehlerbehebungen¶
Behoben:
image.lens_corr()hinterließ veraltete Pixel (der Zielpuffer wird nun vor dem Remapping gelöscht),blob.density()verwendete Ganzzahldivision (gab stets 0 zurück, #268), die UART-Pin-Zuordnung der OpenMV 2 (M4); außerdem wurdeqrcodes_with_lens_corr.pyaktualisiert, um QVGA zu verwenden.
Hardware- und Platinenunterstützung¶
MT9V034 Global-Shutter-Sensor.
OpenMV 4 – Platinen-Unterstützungsdateien (Vorarbeiten).
OpenMV 2 (M4) – Korrektur der UART-Pin-Zuordnung.
Breaking-API-Änderungen¶
Für den Benutzer sichtbare API-Brüche zwischen v2.5.0 und v2.6.0. Umfang: Python-C-Module in modules/ und Python-Bibliotheken in scripts/libraries/.
Jede Änderung ist mit ihrer Auswirkung gekennzeichnet:
major – betrifft die meisten Skripte, die die Funktion verwendet haben; Sie müssen Code portieren.
minor – schmale API; betrifft nur Skripte, die sie verwendet haben.
behavior – gleiche API, andere Ergebnisse; überprüfen Sie abgestimmte Skripte erneut.
Die Änderungen sind in dieser Reihenfolge nach Auswirkung gruppiert. Wenn Sie nur Ihren Code portieren möchten, springen Sie zur Migrations-Checkliste am Ende. Jeder Commit-Hash verweist auf seinen Diff auf GitHub.
find_line_segments() auf LSD umgestellt (major)¶
image.find_line_segments() wurde neu geschrieben, um den Line-Segment-Detector-Algorithmus (LSD) zu verwenden. Die alten Parameter threshold / theta_margin / rho_margin / segment_threshold / x_stride / y_stride wurden durch merge_distance und max_theta_diff ersetzt (z. B. find_line_segments(merge_distance=0, max_theta_diff=15)). Außerdem ist die Funktion auf Platinen der M4-Klasse (OpenMV 2) nicht mehr verfügbar.
Ungültige Framesize-Konstanten entfernt (minor)¶
Die ungültigen Framesize-Konstanten sensor.QQQQCIF / QQQCIF / QQQQSIF / QQQSIF / HQQQQVGA / HVGA wurden entfernt (#261). Skripte, die diese verwenden, müssen auf eine unterstützte Auflösung umgestellt werden.
Commits: 35ab0a26f
find_qrcodes() auf der OpenMV Cam M4 entfernt (minor)¶
image.find_qrcodes() wird auf Platinen der M4-Klasse (OpenMV 2) nicht mehr einkompiliert. Verwenden Sie für die QR-Erkennung auf M4-Hardware eine OpenMV-3-Platine (M7) oder eine andere Code-Funktion. Andere Platinen sind nicht betroffen.
Commits: 7dff089e6
MicroPython auf 1.9.2 aktualisiert (behavior)¶
Der gebündelte MicroPython-Kern wurde auf 1.9.2 aktualisiert. Das Verhalten der Standardbibliothek und der Sprache folgt dem Upstream-MicroPython 1.9.2 – überprüfen Sie Skripte erneut, die von versionsspezifischem Verhalten abhängen. Insbesondere löst ein Image-Slice mit einem anderen Schritt als 1 nun OSError anstelle von NotImplementedError aus.
Commits: 11bed4b99
Migrations-Checkliste¶
Für eine saubere Portierung auf v2.6.0 fällt typischerweise folgende Arbeit an:
find_line_segments()-Aufrufe für die LSD-Parameter (merge_distance/max_theta_diff) umschreiben und diese Verarbeitung von der M4 weg verlagern (die LSD-Überarbeitung).Entfernte Framesize-Konstanten durch eine unterstützte Auflösung ersetzen (das Entfernen der Framesizes).
Die QR-Code-Erkennung der M4 auf eine M7-Platine verlagern (die find_qrcodes-Änderung).
Versionsspezifisches Verhalten gegen MicroPython 1.9.2 erneut validieren (der MicroPython-Versionssprung).
Alle anderen Skripte laufen unverändert weiter.