v2.8.0

v2.8.0 on massiivinen julkaisu. Se tuo käyttöön OpenMV Cam H7 -kortin (STM32H7), jossa on laitteistopohjainen JPEG-enkooderi sekä H7 ADC/DAC, valtavan image-API:n uudistuksen (piirron paksuus/täytöt, matemaattiset/binääriset operaatiot, monia uusia suodattimia, Otsu-kynnystys), MicroPython-säikeistyksen ja omv-versiomoduulin. Pythonin argumenttien jäsennysjärjestys lukittiin ja image.mask_ellipse() poistettiin — lue alla olevat rikkovat muutokset.

Kohokohdat

  • OpenMV Cam H7 — uusi STM32H7-kortti, jossa on laitteistopohjainen JPEG-enkooderi sekä H7 ADC / DAC.

  • image-uudistus — viivan paksuus, muotojen täytöt, draw_arrow() / draw_image(), täydet matemaattiset/binääriset operaatiot sekä monia uusia suodattimia.

  • Otsu-kynnystyshistogram.get_threshold() ja Threshold-olio.

  • Säikeistys — MicroPythonin _thread-tuki.

  • omv-moduuli — versio- / korttitiedot.

  • Rikkova: Pythonin positionaalisten argumenttien järjestys on nyt tiukka ja image.mask_ellipse() poistettiin — katso rikkovat muutokset.

Uudet ominaisuudet

  • OpenMV Cam H7 — STM32H7-kortin tuki laitteistopohjaisella JPEG-enkooderilla, H7 ADC:llä ja H7 DAC:llä.

  • Piirto — lisätty viivan thickness, muodon fill (suorakulmio / ympyrä), tekstin scale / merkkivälistys, mono_space-avainsana funktioon draw_string(), image.draw_arrow() sekä image.draw_image() (sprite- / maskipiirto).

  • Matemaattiset operaatiot — lisätty add(), sub(), mul(), div(), min(), max(), difference(), blend(), replace() (hmirror / vflip / mask -kera) sekä remove_shadows(); perusoperaatiot hyväksyvät nyt skalaari-/väriarvon, joka kohdistetaan kaikkiin pikseleihin.

  • Binääri / morfologia — uusi binäärikuvatyyppi ja binary(); viivaoperaatiot ja erode() / dilate() hyväksyvät maskeja; lisätty open() / close() / top_hat() / black_hat().

  • Suodattimet — lisätty cartoon, flood_fill, bilateral, laplacian, blur / gaussian_blur -aliakset sekä adaptiivinen histogrammin tasoitus (histeq(adaptive=, clip_limit=, mask=)).

  • Tilastotget_statistics() / get_histogram() hyväksyvät värikynnyslistan ja invert-parametrin; lisätty Otsu histogram.get_threshold() ja Threshold-olio.

  • CMSIS CNN — lisätty image.classify_object() cnn.py-esimerkin kera (korvattu nn-moduulilla versiossa v3.0.0).

  • Säikeistys — otettu käyttöön MicroPythonin _thread-moduuli.

  • omv-moduuli — lisätty versiotiedot (version_string, arch, board_type, board_id); otettu käyttöön machine-moduulin I2C4-väylä ja matematiikan erikoisfunktiot (erf, gamma, …); lisätty moottorisuoja-esimerkkejä ja monia uusia esimerkkiskriptejä.

Muut muutokset ja parannukset

  • H7:n sensorin ulkoinen kello laskettiin 48 MHz:iin (parempi kuvanlaatu, pienempi FPS); matala/korkea JPEG-laatu on nyt korttikohtaisesti konfiguroitavissa (ja hienosäädetty H7:lle); lisätty korttikohtainen imlib_config.h-ominaisuuksien rajaus (kaikki kuvafunktiot pysyvät käytössä vakiolaiteohjelmistossa); päivitetty pakettiin sisältyvä MicroPython.

Korjatut virheet

Kuvankäsittely:

  • Korjattu image.save() ilman tiedostopäätettä, gain_db / gain_db_ceiling -kartoitus OV2640:lle / OV7725:lle / OV9650:lle / MT9V034:lle, liiallinen vahvistus funktiossa sharpen(), morfologinen reunakohina, nollalla jako kuvaoperaatiossa sekä pinon ylivuotokaatuminen liian suurella suodatinytimen koolla (nyt siisti virhe).

Järjestelmä:

  • Suojattu USB VCP -puskuri atomisella osiolla (sarjaliikenteen korruptio, #313), korjattu USB-yhteys Windowsissa, sisäisen flash-muistin tiedostojärjestelmän liittäminen jos SD-kortti epäonnistuu, cpufreq-moduulin set_frequency()-funktion PLLP-arvo sekä käynnistyslataimen laiteohjelmiston flash-virhe.

Laitteisto- ja korttituki

  • OpenMV Cam H7 (STM32H7) — uusi kortti laitteistopohjaisella JPEG-enkooderilla sekä H7 ADC / DAC.

  • machine — otettu käyttöön I2C4-väylä.

Rikkovat API-muutokset

Käyttäjälle näkyvät API-muutokset versioiden v2.7.0 ja v2.8.0 välillä. Laajuus: Python C-moduulit hakemistossa modules/ ja Python-kirjastot hakemistossa scripts/libraries/.

Molemmat rikkovat muutokset ovat minor ja vaikuttavat vain skripteihin, jotka käyttivät kyseistä ominaisuutta. Jokainen commit-hash linkittää sen diffiin GitHubissa.

Pythonin positionaalisten argumenttien järjestys on nyt tiukka (minor)

Argumenttien jäsentäminen Python C-moduuleissa (image / sensor / fir / gif / lcd / mjpeg) lukee nyt positionaaliset argumentit ennen avainsanoja ja lukitsee positionaalisen järjestyksen. Yhdessä piirtomenetelmien uusien avainsana-argumenttien kanssa (draw_line() / draw_rectangle() / draw_circle() / draw_string() / draw_cross() / draw_keypoints() saivat thickness / fill / scale / size), koodin, joka välitti parametrit positionaalisesti väärässä järjestyksessä — tai välitti positionaalisen color-arvon jonkin uuden argumentin jälkeen — on käytettävä avainsana-argumentteja tai dokumentoitua positionaalista järjestystä.

Commits: e0e112468, fc74e70c3

image.mask_ellipse() poistettu (minor)

image.mask_ellipse() poistettiin. Sitä kutsuneiden skriptien on poistettava kutsu tai käytettävä sen sijaan eksplisiittistä ROI:ta / maskikuvaa.

Commits: d7159fba3

Siirtymälista

Välitä argumentit avainsanoilla (tai dokumentoidussa positionaalisessa järjestyksessä), erityisesti color piirtomenetelmissä (argumenttijärjestyksen muutos), ja poista image.mask_ellipse() -kutsut (mask_ellipse-poisto). Kaikki muut skriptit toimivat muuttumattomina.