v2.8.0

v2.8.0 är en enorm utgåva. Den startar upp OpenMV Cam H7 (STM32H7) med en hårdvaru-JPEG-kodare och H7 ADC/DAC, en stor omarbetning av image-API:et (ritlinjetjocklek/fyllningar, matematiska/binära operationer, många nya filter, Otsu-tröskling), MicroPython-trådning och omv-versionsmodulen. Ordningen för Pythons argumenttolkning låstes och image.mask_ellipse() togs bort — läs de brytande ändringarna nedan.

Höjdpunkter

  • OpenMV Cam H7 — nytt STM32H7-kort med en hårdvaru-JPEG-kodare och H7 ADC / DAC.

  • image-omarbetning — linjetjocklek, formfyllningar, draw_arrow() / draw_image(), fullständiga matematiska/binära operationer och många nya filter.

  • Otsu-trösklinghistogram.get_threshold() och ett Threshold-objekt.

  • Trådning — stöd för MicroPython _thread.

  • omv-modul — versions- / kortinformation.

  • Brytande: ordningen för Pythons positionsargument är nu strikt och image.mask_ellipse() togs bort — se de brytande ändringarna.

Nya funktioner

  • OpenMV Cam H7 — STM32H7-kortstöd med en hårdvaru-JPEG-kodare, H7 ADC och H7 DAC.

  • Ritning — lade till linje-thickness, form-fill (rektangel / cirkel), text-scale / kerning, ett mono_space-nyckelord på draw_string(), image.draw_arrow() och image.draw_image() (sprite-/maskritning).

  • Matematiska operationer — lade till add(), sub(), mul(), div(), min(), max(), difference(), blend(), replace() (med hmirror / vflip / mask) och remove_shadows(); grundläggande operationer accepterar nu ett skalär-/färgvärde som tillämpas på alla pixlar.

  • Binär / morfologi — en ny binär bildtyp och binary(); linjeoperationer och erode() / dilate() accepterar masker; lade till open() / close() / top_hat() / black_hat().

  • Filter — lade till cartoon, flood_fill, bilateral, laplacian, aliasen blur / gaussian_blur och adaptiv histogramutjämning (histeq(adaptive=, clip_limit=, mask=)).

  • Statistikget_statistics() / get_histogram() accepterar en färgtröskellista och invert; lade till Otsu histogram.get_threshold() och ett Threshold-objekt.

  • CMSIS CNN — lade till image.classify_object() med ett cnn.py-exempel (ersatt av nn-modulen i v3.0.0).

  • Trådning — aktiverade MicroPython _thread-modulen.

  • omv-modul — lade till versionsinformation (version_string, arch, board_type, board_id); aktiverade machine I2C4-bussen och matematiska specialfunktioner (erf, gamma, …); lade till exempel för motor-shield och många nya exempelskript.

Övriga ändringar och förbättringar

  • H7:ans externa sensorklocka sänktes till 48 MHz (bättre bildkvalitet, lägre FPS); låg/hög JPEG-kvalitet är nu kortkonfigurerbar (och avstämd för H7:an); lade till per-kort imlib_config.h-funktionsspärrning (alla bildfunktioner förblir aktiverade i standard-firmware); uppdaterade den medföljande MicroPython.

Buggfixar

Bildbehandling:

  • Fixade image.save() utan filändelse, gain_db / gain_db_ceiling-mappningen för OV2640 / OV7725 / OV9650 / MT9V034, överdriven förstärkning i sharpen(), morfologiskt kantbrus, en division med noll i en bildoperation och en stack-smash-krasch vid en för stor filterkärnstorlek (nu ett rent fel).

System:

  • Skyddade USB VCP-bufferten med en atomär sektion (seriell korruption, #313), fixade USB-anslutning på Windows, montering av det interna flashminnesfilsystemet om SD-kortet misslyckas, cpufreq set_frequency() PLLP-värdet samt en bugg vid firmware-flashning i startladdaren.

Hårdvaru- och kortstöd

  • OpenMV Cam H7 (STM32H7) — nytt kort med en hårdvaru-JPEG-kodare och H7 ADC / DAC.

  • machine — aktiverade I2C4-bussen.

Brytande API-ändringar

Användarsynliga API-brytningar mellan v2.7.0 och v2.8.0. Omfattning: Python-C-moduler i modules/ och Python-bibliotek i scripts/libraries/.

Båda brytande ändringarna är minor och påverkar endast skript som använde den aktuella funktionen. Varje commit-hash länkar till sin diff på GitHub.

Ordningen för Pythons positionsargument är nu strikt (minor)

Argumenttolkningen i Python-C-modulerna (image / sensor / fir / gif / lcd / mjpeg) läser nu positionsargument före nyckelord och låser positionsordningen. I kombination med de nya nyckelordsargumenten på ritmetoderna (draw_line() / draw_rectangle() / draw_circle() / draw_string() / draw_cross() / draw_keypoints() får thickness / fill / scale / size) måste kod som skickade parametrar positionellt i fel ordning — eller skickade en positionell color efter ett av de nya argumenten — använda nyckelordsargument eller den dokumenterade positionsordningen.

Commits: e0e112468, fc74e70c3

image.mask_ellipse() borttagen (minor)

image.mask_ellipse() togs bort. Skript som anropade den måste ta bort anropet eller använda en explicit ROI / maskbild istället.

Commits: d7159fba3

Migrationschecklista

Skicka argument med nyckelord (eller i den dokumenterade positionsordningen), särskilt color på ritmetoderna (argumentordningsändringen), och ta bort anrop till image.mask_ellipse() (mask_ellipse-borttagningen). Alla andra skript körs oförändrade.