v2.5.0

v2.5.0 är en funktionsrik bildbehandlingsrelease: den lägger till find_rects(), find_circles(), get_regression() (linje-/regressionsanpassning), find_number() (LeNet-siffror), stream-klasserna ImageWriter / ImageReader, sensor.flush() / width() / height() samt stöd för pyb.RTC. Bildladdning är nu bildbuffertbaserad — läs de brytande ändringarna nedan.

Höjdpunkter

  • image.find_rects() — detektor för rektanglar/fyrhörningar med hörnutdata.

  • image.find_circles() — Hough-cirkeldetektering.

  • image.get_regression() — linjeanpassning med minsta kvadratmetoden och robust (Theil-Sen).

  • image.find_number() — LeNet-sifferigenkänning.

  • ImageWriter / ImageReader — spela in och spela upp bildströmmar.

  • Stöd för pyb.RTC, samt sensor.flush() / sensor.width() / sensor.height().

  • Brytande: bildladdning är nu bildbuffertbaserad och genererar ett fel om bilden är för stor — se de brytande ändringarna.

Nya funktioner

  • Särdragsdetektering — lade till image.find_rects() (AprilTag-fyrhörningsdetektor; rektangelobjekt med x / y / w / h / corners / magnitude), image.find_circles() (Hough), image.get_regression() (linjeanpassning med minsta kvadratmetoden + robust Theil-Sen) och image.find_number() (LeNet-sifferigenkänning), var och en med exempelskript.

  • Resultathörn — lade till ett corners-attribut till resultatobjekten för QR-koder/AprilTag/data-matriser/streckkoder.

  • Bildströmmar — lade till klasserna image.ImageWriter / image.ImageReader (chunk-format justerat till 16 byte) med exemplen image_writer.py / image_reader.py.

  • Sensor — lade till sensor.flush() (skicka bildbufferten till IDE:n utan en stillbild) och sensor.width() / sensor.height().

  • pyb.RTC — aktiverade RTC-stöd med ett rtc.py-exempel.

  • Lade till en Haar-cascade för kattansikten och ett exempel för Servo-Shield (PCA9685); värdverktyget openmv-cascade.py fick stöd för det nya OpenCV-XML-cascade-formatet.

Övriga ändringar och förbättringar

  • Bildbufferten omstrukturerades så att copy_to_fb-bildmetoder uppdaterar IDE-förhandsvisningen; HaarCascade()-sökvägar kräver inte längre ett inledande / (inbyggd kontra fil identifieras automatiskt); GIF-/MJPEG-inspelning stöder nu VGA (och BAYER-GIF:ar); den inbyggda README.txt uppdaterades och drivrutinsfilen openmv.inf skapas inte längre på ett nytt filsystem.

Buggfixar

Bildbehandling:

  • Åtgärdade röstackumuleringen i find_circles(), rho-förskjutningen och en minnesläcka i get_regression() med ett ROI, segmentsammanslagningen i find_lines(), vinkelmedelvärdesberäkningen och standardgränserna (minst restriktiva) för färg i find_blobs(), ORB-nyckelpunkternas sorteringsstabilitet/deskriptorordning och matchningsflaggan, samt buffrad inläsning av Haar-cascade (ojusterade läsningar).

System:

  • Aktiverade pyb Servo 3 (P9) (#256), åtgärdade RTC-initieringen, ökade UART-teckentimeouten (#240) och åtgärdade den oinitierade ”enabled”-flaggan för sensorns bildbuffert.

Hårdvaru- och kortstöd

  • Stöd för pyb.RTC och pyb Servo 3 (P9); exempel för Servo-Shield (PCA9685).

Brytande API-ändringar

Användarsynliga API-brott mellan v2.4.1 och v2.5.0. Omfattning: Python-C-moduler i modules/ och Python-bibliotek i scripts/libraries/.

Den brytande ändringen är en behavior-ändring (samma API, annat resultat) — kontrollera berörda skript på nytt. Varje commit-hash länkar till sin diff på GitHub.

Bildladdning är bildbuffertbaserad (behavior)

image.Image / bildladdning kopierar nu den laddade bilden till huvudbildbufferten och genererar ett undantag om bilden är för stor för att rymmas. Laddningar som tidigare lyckades till en heap-buffert kan nu misslyckas — säkerställ att laddade bilder ryms i bildbufferten (eller hantera det nya felet).

Commits: 87d53385a

Migreringschecklista

Säkerställ att laddade bilder ryms i bildbufferten (eller fånga det nya felet ”image too large”) där du tidigare förlitade dig på heap-baserade bildladdningar (ändringen av bildladdning). Alla andra skript körs oförändrade.