v2.8.0

A v2.8.0 egy hatalmas kiadás. Életre kelti az OpenMV Cam H7-et (STM32H7) egy hardveres JPEG-kódolóval és H7 ADC/DAC-cal, óriási image API-átdolgozást hoz (rajzolási vastagság/kitöltések, matematikai/bináris műveletek, sok új szűrő, Otsu-küszöbölés), MicroPython szálkezelést, valamint az omv verziómodult. A Python argumentum-feldolgozási sorrend rögzítve lett, és az image.mask_ellipse() eltávolításra került — olvasd el az alábbi töréses változásokat.

Kiemelt újdonságok

  • OpenMV Cam H7 — új STM32H7 alaplap hardveres JPEG-kódolóval és H7 ADC / DAC-cal.

  • image átdolgozás — vonalvastagság, alakzat-kitöltések, draw_arrow() / draw_image(), teljes matematikai/bináris műveletek és sok új szűrő.

  • Otsu-küszöböléshistogram.get_threshold() és egy Threshold objektum.

  • Szálkezelés — MicroPython _thread támogatás.

  • omv modul — verzió- / alaplap-információk.

  • Töréses: a Python pozicionális-argumentum sorrend mostantól szigorú, és az image.mask_ellipse() eltávolításra került — lásd a töréses változásokat.

Új funkciók

  • OpenMV Cam H7 — STM32H7 alaplap-támogatás hardveres JPEG-kódolóval, H7 ADC-vel és H7 DAC-cal.

  • Rajzolás — hozzáadva vonal-thickness, alakzat-fill (téglalap / kör), szöveg-scale / alávágás (kerning), egy mono_space kulcsszó a draw_string()-hez, az image.draw_arrow() és az image.draw_image() (sprite- / maszk-rajzolás).

  • Matematikai műveletek — hozzáadva az add(), sub(), mul(), div(), min(), max(), difference(), blend(), replace() (hmirror / vflip / mask támogatással) és a remove_shadows(); az alapműveletek mostantól elfogadnak egy minden képpontra alkalmazott skalár/szín értéket.

  • Bináris / morfológia — egy új bináris képtípus és a binary(); a vonalműveletek és az erode() / dilate() elfogadnak maszkokat; hozzáadva az open() / close() / top_hat() / black_hat().

  • Szűrők — hozzáadva a cartoon, flood_fill, bilateral, laplacian, blur / gaussian_blur aliasok, valamint adaptív hisztogram-kiegyenlítés (histeq(adaptive=, clip_limit=, mask=)).

  • Statisztika — a get_statistics() / get_histogram() elfogad egy szín-küszöbérték listát és invert opciót; hozzáadva az Otsu histogram.get_threshold() és egy Threshold objektum.

  • CMSIS CNN — hozzáadva az image.classify_object() egy cnn.py példával (amelyet a v3.0.0-ban az nn modul vált fel).

  • Szálkezelés — engedélyezve a MicroPython _thread modul.

  • omv modul — hozzáadva verzióinformáció (version_string, arch, board_type, board_id); engedélyezve a machine I2C4 busz és a matematikai speciális függvények (erf, gamma, …); hozzáadva motor-shield példák és sok új példaszkript.

Egyéb változások és fejlesztések

  • A H7 érzékelő külső órajele 48 MHz-re csökkentve (jobb képminőség, alacsonyabb FPS); az alacsony/magas JPEG-minőség mostantól alaplaponként konfigurálható (és a H7-hez hangolva); hozzáadva alaplaponkénti imlib_config.h funkció-engedélyezés (az összes képfüggvény engedélyezve marad a gyári firmware-en); a mellékelt MicroPython frissítve.

Hibajavítások

Képfeldolgozás:

  • Javítva az image.save() fájlkiterjesztés nélkül, a gain_db / gain_db_ceiling leképezése az OV2640 / OV7725 / OV9650 / MT9V034 esetén, a túlzott erősítés a sharpen()-ben, a morfológiai él-zaj, egy nullával osztás egy képműveletben, és egy túl nagy szűrő-kernel mérete által okozott stack-smash összeomlás (mostantól tiszta hiba).

Rendszer:

  • A USB VCP puffer védve egy atomi szakasszal (soros adatsérülés, #313), javítva az USB-kapcsolat Windows alatt, az belső flash memória fájlrendszerének csatolása, ha az SD-kártya meghibásodik, a cpufreq set_frequency() PLLP értéke, és egy rendszerbetöltő firmware-flashelési hiba.

Hardver- és alaplap-támogatás

  • OpenMV Cam H7 (STM32H7) — új alaplap hardveres JPEG-kódolóval és H7 ADC / DAC-cal.

  • machine — engedélyezve az I2C4 busz.

Töréses API-változások

Felhasználó számára látható API-törések a v2.7.0 és a v2.8.0 között. Hatókör: a modules/ mappában lévő Python C-modulok és a scripts/libraries/ mappában lévő Python könyvtárak.

Mindkét töréses változás minor, és csak az érintett funkciót használó szkripteket érinti. Minden commit-hash a hozzá tartozó diffre mutat a GitHubon.

A Python pozicionális-argumentum sorrend mostantól szigorú (minor)

Az argumentum-feldolgozás a Python C-modulokban (image / sensor / fir / gif / lcd / mjpeg) mostantól a kulcsszavak előtt olvassa be a pozicionális argumentumokat, és rögzíti a pozicionális sorrendet. A rajzolási metódusok új kulcsszó-argumentumaival kombinálva (a draw_line() / draw_rectangle() / draw_circle() / draw_string() / draw_cross() / draw_keypoints() thickness / fill / scale / size argumentumokkal bővült) annak a kódnak, amely a paramétereket pozicionálisan, rossz sorrendben adta át — vagy egy pozicionális color értéket adott át az egyik új argumentum után — kulcsszó-argumentumokat vagy a dokumentált pozicionális sorrendet kell használnia.

Commitok: e0e112468, fc74e70c3

Az image.mask_ellipse() eltávolítva (minor)

Az image.mask_ellipse() eltávolításra került. Az ezt hívó szkripteknek el kell hagyniuk a hívást, vagy helyette explicit ROI / maszk-képet kell használniuk.

Commitok: d7159fba3

Migrációs ellenőrzőlista

Add át az argumentumokat kulcsszóval (vagy a dokumentált pozicionális sorrendben), különösen a color értéket a rajzolási metódusoknál (az argumentum-sorrend változás), és távolítsd el az image.mask_ellipse() hívásokat (a mask_ellipse eltávolítás). Minden más szkript változtatás nélkül fut.