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, samtsensor.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 medx/y/w/h/corners/magnitude),image.find_circles()(Hough),image.get_regression()(linjeanpassning med minsta kvadratmetoden + robust Theil-Sen) ochimage.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 exemplenimage_writer.py/image_reader.py.Sensor — lade till
sensor.flush()(skicka bildbufferten till IDE:n utan en stillbild) ochsensor.width()/sensor.height().pyb.RTC— aktiverade RTC-stöd med ettrtc.py-exempel.Lade till en Haar-cascade för kattansikten och ett exempel för Servo-Shield (PCA9685); värdverktyget
openmv-cascade.pyfick 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 inbyggdaREADME.txtuppdaterades och drivrutinsfilenopenmv.infskapas inte längre på ett nytt filsystem.
Buggfixar¶
Bildbehandling:
Åtgärdade röstackumuleringen i
find_circles(), rho-förskjutningen och en minnesläcka iget_regression()med ett ROI, segmentsammanslagningen ifind_lines(), vinkelmedelvärdesberäkningen och standardgränserna (minst restriktiva) för färg ifind_blobs(), ORB-nyckelpunkternas sorteringsstabilitet/deskriptorordning och matchningsflaggan, samt buffrad inläsning av Haar-cascade (ojusterade läsningar).
System:
Aktiverade
pybServo 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¶
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.