v2.8.0

v2.8.0 je obrovské vydání. Uvádí do provozu OpenMV Cam H7 (STM32H7) s hardwarovým JPEG enkodérem a H7 ADC/DAC, přináší rozsáhlé přepracování API image (tloušťka/výplně kreslení, matematické/binární operace, řada nových filtrů, Otsu prahování), vlákna v MicroPythonu a verzovací modul omv. Pořadí parsování argumentů v Pythonu bylo uzamčeno a image.mask_ellipse() byl odstraněn — přečtěte si nekompatibilní změny níže.

Hlavní novinky

  • OpenMV Cam H7 — nová deska STM32H7 s hardwarovým JPEG enkodérem a H7 ADC / DAC.

  • Přepracování image — tloušťka čar, výplně tvarů, draw_arrow() / draw_image(), plné matematické/binární operace a řada nových filtrů.

  • Otsu prahováníhistogram.get_threshold() a objekt Threshold.

  • Vlákna — podpora MicroPython _thread.

  • Modul omv — informace o verzi / desce.

  • Nekompatibilní: pořadí poziční argumentů v Pythonu je nyní striktní a image.mask_ellipse() byl odstraněn — viz nekompatibilní změny.

Nové funkce

  • OpenMV Cam H7 — podpora desky STM32H7 s hardwarovým JPEG enkodérem, H7 ADC a H7 DAC.

  • Kreslení — přidána thickness čáry, fill tvaru (obdélník / kruh), scale / kerning textu, klíčové slovo mono_space u draw_string(), image.draw_arrow() a image.draw_image() (kreslení sprite / masky).

  • Matematické operace — přidány add(), sub(), mul(), div(), min(), max(), difference(), blend(), replace() (s hmirror / vflip / mask) a remove_shadows(); základní operace nyní přijímají skalární/barevnou hodnotu aplikovanou na všechny pixely.

  • Binární / morfologie — nový typ binárního obrazu a binary(); operace s čarami a erode() / dilate() přijímají masky; přidány open() / close() / top_hat() / black_hat().

  • Filtry — přidány cartoon, flood_fill, bilateral, laplacian, aliasy blur / gaussian_blur a adaptivní ekvalizace histogramu (histeq(adaptive=, clip_limit=, mask=)).

  • Statistikaget_statistics() / get_histogram() přijímají seznam barevných prahů a invert; přidány Otsu histogram.get_threshold() a objekt Threshold.

  • CMSIS CNN — přidán image.classify_object() s příkladem cnn.py (nahrazen modulem nn ve v3.0.0).

  • Vlákna — povolen modul MicroPython _thread.

  • Modul omv — přidány informace o verzi (version_string, arch, board_type, board_id); povolena sběrnice I2C4 modulu machine a speciální matematické funkce (erf, gamma, …); přidány příklady s motor-shieldem a řada nových příkladových skriptů.

Další změny a vylepšení

  • Externí hodinový takt senzoru H7 byl snížen na 48 MHz (lepší kvalita obrazu, nižší FPS); nízká/vysoká kvalita JPEG je nyní konfigurovatelná podle desky (a vyladěná pro H7); přidáno řízení funkcí imlib_config.h podle desky (všechny obrazové funkce zůstávají povolené ve výchozím firmwaru); aktualizován přibalený MicroPython.

Opravy chyb

Zpracování obrazu:

  • Opraveno: image.save() bez přípony souboru, mapování gain_db / gain_db_ceiling pro OV2640 / OV7725 / OV9650 / MT9V034, nadměrný zisk ve sharpen(), morfologický šum na hranách, dělení nulou v obrazové operaci a pád typu stack-smash při příliš velké velikosti jádra filtru (nyní čistá chyba).

Systém:

  • Buffer USB VCP chráněn atomickou sekcí (poškození sériové komunikace, #313), opravena konektivita USB ve Windows, připojení interního filesystému na flash paměti při selhání SD karty, hodnota PLLP u cpufreq set_frequency() a chyba flashování firmwaru v bootloaderu.

Hardware a podpora desek

  • OpenMV Cam H7 (STM32H7) — nová deska s hardwarovým JPEG enkodérem a H7 ADC / DAC.

  • machine — povolena sběrnice I2C4.

Nekompatibilní změny API

Uživatelsky viditelné nekompatibilní změny API mezi v2.7.0 a v2.8.0. Rozsah: Python C-moduly v modules/ a knihovny Pythonu v scripts/libraries/.

Obě nekompatibilní změny jsou minor a ovlivňují pouze skripty, které příslušnou funkci používaly. Každý hash commitu odkazuje na svůj diff na GitHubu.

Pořadí poziční argumentů v Pythonu je nyní striktní (minor)

Parsování argumentů napříč Python C-moduly (image / sensor / fir / gif / lcd / mjpeg) nyní čte poziční argumenty před klíčovými a uzamyká poziční pořadí. V kombinaci s novými klíčovými argumenty u kreslicích metod (draw_line() / draw_rectangle() / draw_circle() / draw_string() / draw_cross() / draw_keypoints() získaly thickness / fill / scale / size) musí kód, který předával parametry pozičně mimo pořadí — nebo předával poziční color po jednom z nových argumentů — používat klíčové argumenty nebo dokumentované poziční pořadí.

Commity: e0e112468, fc74e70c3

image.mask_ellipse() odstraněn (minor)

image.mask_ellipse() byl odstraněn. Skripty, které jej volaly, musí volání odstranit nebo místo něj použít explicitní ROI / obraz masky.

Commity: d7159fba3

Kontrolní seznam migrace

Předávejte argumenty klíčovým slovem (nebo v dokumentovaném pozičním pořadí), zejména color u kreslicích metod (změna pořadí argumentů), a odstraňte volání image.mask_ellipse() (odstranění mask_ellipse). Všechny ostatní skripty běží beze změny.