v2.5.0¶
v2.5.0 ist ein funktionsreiches Imaging-Release: Es fügt find_rects(), find_circles(), get_regression() (Linien-/Regressions-Anpassung), find_number() (LeNet-Ziffern), die Stream-Klassen ImageWriter / ImageReader, sensor.flush() / width() / height() sowie pyb.RTC-Unterstützung hinzu. Das Laden von Bildern ist jetzt Framebuffer-gestützt — lesen Sie die nachstehenden Änderungen mit Kompatibilitätsbruch.
Höhepunkte¶
image.find_rects()— Rechteck-/Quad-Detektor mit Eckpunkt-Ausgabe.image.find_circles()— Hough-Kreiserkennung.image.get_regression()— Linienanpassung nach kleinsten Quadraten und robust (Theil-Sen).image.find_number()— LeNet-Ziffernerkennung.ImageWriter/ImageReader— Bild-Streams aufzeichnen und wiedergeben.pyb.RTC-Unterstützung, plussensor.flush()/sensor.width()/sensor.height().Kompatibilitätsbruch: Das Laden von Bildern ist jetzt Framebuffer-gestützt und löst eine Ausnahme aus, wenn das Bild zu groß ist — siehe die Änderungen mit Kompatibilitätsbruch.
Neue Funktionen¶
Merkmalserkennung —
image.find_rects()(AprilTag-Quad-Detektor; Rect-Objekte mitx/y/w/h/corners/magnitude),image.find_circles()(Hough),image.get_regression()(kleinste Quadrate + robuste Theil-Sen-Linienanpassung) undimage.find_number()(LeNet-Ziffernerkennung) hinzugefügt, jeweils mit Beispielskripten.Ergebnis-Eckpunkte — ein
corners-Attribut zu den Ergebnisobjekten für QR-Code / AprilTag / Data-Matrix / Barcode hinzugefügt.Bild-Streams — die Klassen
image.ImageWriter/image.ImageReader(16-Byte-ausgerichtetes Chunk-Format) mit den Beispielenimage_writer.py/image_reader.pyhinzugefügt.Sensor —
sensor.flush()(den Framebuffer ohne Schnappschuss an die IDE übergeben) undsensor.width()/sensor.height()hinzugefügt.pyb.RTC— RTC-Unterstützung mit einemrtc.py-Beispiel aktiviert.Eine Katzengesichts-Haar-Cascade und ein Servo-Shield-Beispiel (PCA9685) hinzugefügt; das Host-Tool
openmv-cascade.pyerhielt Unterstützung für das neue OpenCV-XML-Cascade-Format.
Weitere Änderungen und Verbesserungen¶
Der Framebuffer wurde umgestaltet, sodass
copy_to_fb-Bildmethoden die IDE-Vorschau aktualisieren;HaarCascade()-Pfade benötigen kein führendes/mehr (built-in vs. Datei wird automatisch erkannt); GIF-/MJPEG-Aufnahme unterstützt jetzt VGA (und BAYER-GIFs); die integrierteREADME.txtwurde aktualisiert und die Treiberdateiopenmv.infwird auf einem frischen Dateisystem nicht mehr erstellt.
Fehlerkorrekturen¶
Bildverarbeitung:
Die Stimmen-Akkumulation von
find_circles(), den rho-Versatz vonget_regression()bei einem ROI und ein Speicherleck, das Segment-Zusammenführen vonfind_lines(), die Winkelmittelung vonfind_blobs()und die Standard-Farbgrenzen (am wenigsten restriktiv), die ORB-Schlüsselpunkt-Sortierstabilität / Deskriptor-Reihenfolge und das Matched-Flag sowie das gepufferte Laden der Haar-Cascade (nicht ausgerichtete Lesevorgänge) behoben.
System:
pyb-Servo 3 (P9) (#256) aktiviert, die RTC-Initialisierung behoben, das UART-Zeichen-Timeout erhöht (#240) und das nicht initialisierte „enabled“-Flag des Sensor-Framebuffers behoben.
Hardware- und Board-Unterstützung¶
API-Änderungen mit Kompatibilitätsbruch¶
Für Benutzer sichtbare API-Brüche zwischen v2.4.1 und v2.5.0. Umfang: Python-C-Module in modules/ und Python-Bibliotheken in scripts/libraries/.
Die Änderung mit Kompatibilitätsbruch ist eine behavior-Änderung (gleiche API, anderes Ergebnis) — betroffene Skripte erneut prüfen. Jeder Commit-Hash verlinkt auf seinen Diff auf GitHub.
Das Laden von Bildern ist Framebuffer-gestützt (behavior)¶
image.Image / das Laden von Bildern kopiert das geladene Bild jetzt in den Haupt-Framebuffer und löst eine Ausnahme aus, wenn das Bild zu groß ist, um hineinzupassen. Ladevorgänge, die zuvor in einen Heap-Puffer erfolgreich waren, können jetzt fehlschlagen — stellen Sie sicher, dass geladene Bilder in den Framebuffer passen (oder behandeln Sie den neuen Fehler).
Commits: 87d53385a
Migrations-Checkliste¶
Stellen Sie sicher, dass geladene Bilder in den Framebuffer passen (oder fangen Sie den neuen Fehler „image too large“ ab), wo Sie zuvor auf Heap-gestützte Bildladevorgänge angewiesen waren (die Bildlade-Änderung). Alle anderen Skripte laufen unverändert.