v2.8.0¶
v2.8.0 is een enorme release. Hij brengt de OpenMV Cam H7 (STM32H7) tot leven met een hardware JPEG-encoder en H7 ADC/DAC, een grote herziening van de image-API (tekendikte/vullingen, wiskundige/binaire bewerkingen, veel nieuwe filters, Otsu-drempelwaarde), MicroPython-threading en de omv-versiemodule. De volgorde van Python-argumentparsing is vastgezet en image.mask_ellipse() is verwijderd — lees de breaking changes hieronder.
Hoogtepunten¶
OpenMV Cam H7 — nieuw STM32H7-board met een hardware JPEG-encoder en H7 ADC / DAC.
image-herziening — lijndikte, vormvullingen,draw_arrow()/draw_image(), volledige wiskundige/binaire bewerkingen en veel nieuwe filters.Otsu-drempelwaarde —
histogram.get_threshold()en eenThreshold-object.Threading — MicroPython
_thread-ondersteuning.omv-module — versie- / boardinformatie.Breaking: de volgorde van positionele Python-argumenten is nu strikt en
image.mask_ellipse()is verwijderd — zie de breaking changes.
Nieuwe functies¶
OpenMV Cam H7 — STM32H7-boardondersteuning met een hardware JPEG-encoder, H7 ADC en H7 DAC.
Tekenen — lijn-
thickness, vorm-fill(rechthoek / cirkel), tekst-scale/ kerning, eenmono_space-keyword opdraw_string(),image.draw_arrow()enimage.draw_image()(sprite- / masktekening) toegevoegd.Wiskundige bewerkingen —
add(),sub(),mul(),div(),min(),max(),difference(),blend(),replace()(methmirror/vflip/mask) enremove_shadows()toegevoegd; basisbewerkingen accepteren nu een scalair/kleur-waarde die op alle pixels wordt toegepast.Binair / morfologie — een nieuw binair afbeeldingstype en
binary(); lijnbewerkingen enerode()/dilate()accepteren maskers;open()/close()/top_hat()/black_hat()toegevoegd.Filters —
cartoon,flood_fill,bilateral,laplacian,blur/gaussian_blur-aliassen en adaptieve histogramegalisatie (histeq(adaptive=, clip_limit=, mask=)) toegevoegd.Statistiek —
get_statistics()/get_histogram()accepteren een kleurdrempelwaardelijst eninvert; Otsuhistogram.get_threshold()en eenThreshold-object toegevoegd.CMSIS CNN —
image.classify_object()toegevoegd met eencnn.py-voorbeeld (vervangen door denn-module in v3.0.0).Threading — de MicroPython
_thread-module ingeschakeld.omv-module — versie-informatie toegevoegd (version_string,arch,board_type,board_id); demachineI2C4-bus en speciale wiskundefuncties (erf,gamma, …) ingeschakeld; motor-shield-voorbeelden en veel nieuwe voorbeeldscripts toegevoegd.
Overige wijzigingen en verbeteringen¶
De externe sensorklok van de H7 is verlaagd naar 48 MHz (betere beeldkwaliteit, lagere FPS); lage/hoge JPEG-kwaliteit is nu per board configureerbaar (en afgestemd op de H7); per-board
imlib_config.hfeature-gating toegevoegd (alle image-functies blijven ingeschakeld op de standaardfirmware); de meegeleverde MicroPython bijgewerkt.
Bugfixes¶
Beeldverwerking:
image.save()zonder bestandsextensie, degain_db/gain_db_ceiling-mapping voor de OV2640 / OV7725 / OV9650 / MT9V034, overmatige versterking insharpen(), morfologische randruis, een deling-door-nul in een image-bewerking, en een stack-smash-crash bij een te grote filterkernelgrootte (nu een nette fout) gecorrigeerd.
Systeem:
De USB VCP-buffer beschermd met een atomic section (seriële corruptie, #313), USB-connectiviteit op Windows gecorrigeerd, het aankoppelen van het interne flashgeheugen-bestandssysteem als de SD-kaart faalt, de
cpufreqset_frequency()PLLP-waarde, en een bug bij het flashen van firmware in de bootloader.
Hardware- en boardondersteuning¶
OpenMV Cam H7 (STM32H7) — nieuw board met een hardware JPEG-encoder en H7 ADC / DAC.
machine— de I2C4-bus ingeschakeld.
Breaking API-wijzigingen¶
Voor de gebruiker zichtbare API-breaks tussen v2.7.0 en v2.8.0. Scope: Python C-modules in modules/ en Python-libraries in scripts/libraries/.
Beide breaking changes zijn minor en treffen alleen scripts die de betreffende functie gebruikten. Elke commit-hash linkt naar de bijbehorende diff op GitHub.
De volgorde van positionele Python-argumenten is nu strikt (minor)¶
Argumentparsing in de Python C-modules (image / sensor / fir / gif / lcd / mjpeg) leest nu positionele argumenten vóór keywords en zet de positionele volgorde vast. In combinatie met de nieuwe keyword-argumenten op de tekenmethoden (draw_line() / draw_rectangle() / draw_circle() / draw_string() / draw_cross() / draw_keypoints() die thickness / fill / scale / size krijgen) moet code die parameters positioneel in de verkeerde volgorde meegaf — of een positionele color na een van de nieuwe argumenten meegaf — keyword-argumenten of de gedocumenteerde positionele volgorde gebruiken.
image.mask_ellipse() verwijderd (minor)¶
image.mask_ellipse() is verwijderd. Scripts die het aanriepen moeten de aanroep verwijderen of in plaats daarvan een expliciete ROI / maskerafbeelding gebruiken.
Commits: d7159fba3
Migratiechecklist¶
Geef argumenten per keyword mee (of in de gedocumenteerde positionele volgorde), met name color op de tekenmethoden (de argumentvolgorde-wijziging), en verwijder image.mask_ellipse()-aanroepen (de mask_ellipse-verwijdering). Alle overige scripts draaien ongewijzigd.