v2.8.0¶
v2.8.0 este o versiune masivă. Aduce la viață OpenMV Cam H7 (STM32H7) cu un codificator JPEG hardware și ADC/DAC H7, o revizuire amplă a API-ului image (grosime/umpleri de desenare, operații matematice/binare, multe filtre noi, prag Otsu), fire de execuție MicroPython și modulul de versiune omv. Ordinea de analizare a argumentelor Python a fost fixată și image.mask_ellipse() a fost eliminat — citiți modificările incompatibile de mai jos.
Aspecte importante¶
OpenMV Cam H7 — placă STM32H7 nouă cu un codificator JPEG hardware și ADC / DAC H7.
Revizuirea
image— grosimea liniei, umplerea formelor,draw_arrow()/draw_image(), operații matematice/binare complete și multe filtre noi.Prag Otsu —
histogram.get_threshold()și un obiectThreshold.Fire de execuție — suport pentru
_threaddin MicroPython.Modulul
omv— informații despre versiune / placă.Incompatibil: ordinea argumentelor pozitionale Python este acum strictă și
image.mask_ellipse()a fost eliminat — consultați modificările incompatibile.
Funcționalități noi¶
OpenMV Cam H7 — suport pentru placa STM32H7 cu un codificator JPEG hardware, ADC H7 și DAC H7.
Desenare — s-au adăugat
thicknesspentru linie,fillpentru forme (dreptunghi / cerc),scale/ kerning pentru text, un argumentmono_spaceladraw_string(),image.draw_arrow()șiimage.draw_image()(desenare de sprite / măști).Operații matematice — s-au adăugat
add(),sub(),mul(),div(),min(),max(),difference(),blend(),replace()(cuhmirror/vflip/mask) șiremove_shadows(); operațiile de bază acceptă acum o valoare scalară/de culoare aplicată tuturor pixelilor.Binar / morfologie — un nou tip de imagine binară și
binary(); operațiile de linie șierode()/dilate()acceptă măști; s-au adăugatopen()/close()/top_hat()/black_hat().Filtre — s-au adăugat
cartoon,flood_fill,bilateral,laplacian, aliasurileblur/gaussian_blurși egalizarea adaptivă a histogramei (histeq(adaptive=, clip_limit=, mask=)).Statistici —
get_statistics()/get_histogram()acceptă o listă de praguri de culoare șiinvert; s-au adăugathistogram.get_threshold()Otsu și un obiectThreshold.CMSIS CNN — s-a adăugat
image.classify_object()cu un exemplucnn.py(înlocuit de modululnnîn v3.0.0).Fire de execuție — s-a activat modulul
_threaddin MicroPython.Modulul
omv— s-au adăugat informații despre versiune (version_string,arch,board_type,board_id); s-a activat magistrala I2C4 dinmachineși funcțiile matematice speciale (erf,gamma, …); s-au adăugat exemple pentru motor-shield și multe scripturi exemplu noi.
Alte modificări și îmbunătățiri¶
Ceasul extern al senzorului H7 a fost redus la 48 MHz (calitate mai bună a imaginii, FPS mai mic); calitatea JPEG scăzută/ridicată este acum configurabilă pe placă (și reglată pentru H7); s-a adăugat limitarea funcționalităților per placă prin
imlib_config.h(toate funcțiile de imagine rămân activate în firmware-ul standard); s-a actualizat MicroPython inclus.
Remedieri de erori¶
Imagistică:
S-au remediat
image.save()fără o extensie de fișier, mapareagain_db/gain_db_ceilingpentru OV2640 / OV7725 / OV9650 / MT9V034, amplificarea excesivă dinsharpen(), zgomotul morfologic la muchii, o împărțire la zero într-o operație de imagine și o eroare de tip stack-smash la o dimensiune prea mare a nucleului filtrului (acum o eroare curată).
Sistem:
S-a protejat tamponul USB VCP cu o secțiune atomică (corupere serială, #313), s-au remediat conectivitatea USB pe Windows, montarea sistemului de fișiere din memoria flash internă dacă cardul SD eșuează, valoarea PLLP a
cpufreqset_frequency()și o eroare de scriere a firmware-ului din bootloader.
Suport pentru hardware și plăci¶
OpenMV Cam H7 (STM32H7) — placă nouă cu un codificator JPEG hardware și ADC / DAC H7.
machine— s-a activat magistrala I2C4.
Modificări incompatibile ale API-ului¶
Modificări incompatibile ale API-ului vizibile pentru utilizator între v2.7.0 și v2.8.0. Domeniu: modulele C Python din modules/ și bibliotecile Python din scripts/libraries/.
Ambele modificări incompatibile sunt minor și afectează doar scripturile care au folosit funcționalitatea relevantă. Fiecare hash de commit duce la diff-ul său pe GitHub.
Ordinea argumentelor pozitionale Python este acum strictă (minor)¶
Analizarea argumentelor în modulele C Python (image / sensor / fir / gif / lcd / mjpeg) citește acum argumentele pozitionale înaintea celor cu cuvinte cheie și fixează ordinea pozitionala. Combinat cu noile argumente cu cuvinte cheie ale metodelor de desenare (draw_line() / draw_rectangle() / draw_circle() / draw_string() / draw_cross() / draw_keypoints() câștigând thickness / fill / scale / size), codul care a transmis parametri în afara ordinii pozitional — sau a transmis o color pozitionala după unul dintre noile argumente — trebuie să folosească argumente cu cuvinte cheie sau ordinea pozitionala documentată.
image.mask_ellipse() eliminat (minor)¶
image.mask_ellipse() a fost eliminat. Scripturile care îl apelau trebuie să elimine apelul sau să folosească în schimb o ROI / imagine de mască explicită.
Commits: d7159fba3
Lista de verificare pentru migrare¶
Transmiteți argumentele prin cuvinte cheie (sau în ordinea pozitionala documentată), în special color la metodele de desenare (modificarea ordinii argumentelor) și eliminați apelurile image.mask_ellipse() (eliminarea mask_ellipse). Toate celelalte scripturi rulează nemodificate.