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, plussensor.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¶
Kenmerkdetectie —
image.find_rects()(AprilTag-quad-detector; rect-objecten metx/y/w/h/corners/magnitude),image.find_circles()(Hough),image.get_regression()(kleinste-kwadraten + Theil-Sen robuuste lijnfitting) enimage.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 voorbeeldenimage_writer.py/image_reader.py.Sensor —
sensor.flush()toegevoegd (duw de framebuffer naar de IDE zonder een momentopname) ensensor.width()/sensor.height().pyb.RTC— RTC-ondersteuning ingeschakeld met eenrtc.py-voorbeeld.Een Haar cascade voor kattengezichten en een Servo-Shield (PCA9685)-voorbeeld toegevoegd; de host-tool
openmv-cascade.pykreeg 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 ingebouwdeREADME.txtis bijgewerkt en het driverbestandopenmv.infwordt niet langer aangemaakt op een vers bestandssysteem.
Bugfixes¶
Beeldverwerking:
De stemmenaccumulatie van
find_circles(), de rho-offset vanget_regression()bij een ROI en een geheugenlek, de segmentsamenvoeging vanfind_lines(), de hoekgemiddelden en standaard (minst restrictieve) kleurgrenzen vanfind_blobs(), de stabiliteit van de ORB-sleutelpuntsortering / descriptorvolgorde en de matched-vlag, en het gebufferd laden van Haar cascades (niet-uitgelijnde reads) opgelost.
Systeem:
pybServo 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¶
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.