v2.5.0

v2.5.0 is een functierijke beeldverwerkingsrelease: het voegt find_rects(), find_circles(), get_regression() (lijn-/regressiefitting), find_number() (LeNet-cijfers), de stream-klassen ImageWriter / ImageReader, sensor.flush() / width() / height() en pyb.RTC-ondersteuning toe. Het laden van afbeeldingen is nu framebuffer-gebaseerd — lees de brekende wijzigingen hieronder.

Hoogtepunten

  • image.find_rects() — rechthoek-/quad-detector met hoekuitvoer.

  • image.find_circles() — Hough-cirkeldetectie.

  • image.get_regression() — kleinste-kwadraten- en robuuste (Theil-Sen) lijnfitting.

  • image.find_number() — LeNet-cijferherkenning.

  • ImageWriter / ImageReader — neem image-streams op en speel ze af.

  • pyb.RTC-ondersteuning, plus sensor.flush() / sensor.width() / sensor.height().

  • Brekend: het laden van afbeeldingen is nu framebuffer-gebaseerd en geeft een fout als de afbeelding te groot is — zie de brekende wijzigingen.

Nieuwe functies

  • Kenmerkdetectieimage.find_rects() (AprilTag-quad-detector; rect-objecten met x / y / w / h / corners / magnitude), image.find_circles() (Hough), image.get_regression() (kleinste-kwadraten + Theil-Sen robuuste lijnfitting) en image.find_number() (LeNet-cijferherkenning) toegevoegd, elk met voorbeeldscripts.

  • Resultaathoeken — een corners-attribuut toegevoegd aan de resultaatobjecten voor QR-code / AprilTag / data-matrix / barcode.

  • Image-streams — de klassen image.ImageWriter / image.ImageReader (chunkformaat uitgelijnd op 16 bytes) toegevoegd met voorbeelden image_writer.py / image_reader.py.

  • Sensorsensor.flush() toegevoegd (duw de framebuffer naar de IDE zonder een momentopname) en sensor.width() / sensor.height().

  • pyb.RTC — RTC-ondersteuning ingeschakeld met een rtc.py-voorbeeld.

  • Een Haar cascade voor kattengezichten en een Servo-Shield (PCA9685)-voorbeeld toegevoegd; de host-tool openmv-cascade.py kreeg ondersteuning voor het nieuwe OpenCV XML-cascadeformaat.

Overige wijzigingen en verbeteringen

  • De framebuffer is geherstructureerd zodat copy_to_fb-image-methoden de IDE-preview bijwerken; HaarCascade()-paden vereisen niet langer een voorafgaande / (ingebouwd versus bestand wordt automatisch gedetecteerd); GIF-/MJPEG-opname ondersteunt nu VGA (en BAYER-GIFs); de ingebouwde README.txt is bijgewerkt en het driverbestand openmv.inf wordt niet langer aangemaakt op een vers bestandssysteem.

Bugfixes

Beeldverwerking:

  • De stemmenaccumulatie van find_circles(), de rho-offset van get_regression() bij een ROI en een geheugenlek, de segmentsamenvoeging van find_lines(), de hoekgemiddelden en standaard (minst restrictieve) kleurgrenzen van find_blobs(), de stabiliteit van de ORB-sleutelpuntsortering / descriptorvolgorde en de matched-vlag, en het gebufferd laden van Haar cascades (niet-uitgelijnde reads) opgelost.

Systeem:

  • pyb Servo 3 (P9) ingeschakeld (#256), de RTC-init opgelost, de UART-tekentime-out verhoogd (#240), en de niet-geïnitialiseerde “enabled”-vlag van de sensor-framebuffer opgelost.

Hardware- en bordondersteuning

  • pyb.RTC-ondersteuning en pyb Servo 3 (P9); Servo-Shield (PCA9685)-voorbeeld.

Brekende API-wijzigingen

Voor de gebruiker zichtbare API-breuken tussen v2.4.1 en v2.5.0. Bereik: Python C-modules in modules/ en Python-bibliotheken in scripts/libraries/.

De brekende wijziging is een behavior-wijziging (dezelfde API, ander resultaat) — controleer de betrokken scripts opnieuw. Elke commit-hash linkt naar zijn diff op GitHub.

Het laden van afbeeldingen is framebuffer-gebaseerd (behavior)

image.Image / het laden van afbeeldingen kopieert de geladen afbeelding nu naar de hoofd-framebuffer en geeft een uitzondering als de afbeelding te groot is om te passen. Loads die voorheen slaagden in een heap-buffer kunnen nu mislukken — zorg ervoor dat geladen afbeeldingen in de framebuffer passen (of handel de nieuwe fout af).

Commits: 87d53385a

Migratiechecklist

Zorg ervoor dat geladen afbeeldingen in de framebuffer passen (of vang de nieuwe “image too large”-fout op) waar je voorheen op heap-gebaseerde image-loads vertrouwde (de wijziging van het laden van afbeeldingen). Alle andere scripts draaien ongewijzigd.