v1.4.0¶
v1.4.0 este o reorganizare fundamentală a imlib. find_blobs() / find_markers() au fost rescrise pentru urmărirea directă pe baza pragului de culoare, multe metode de imagine de sine stătătoare au fost incluse în tupluri de blob-uri, iar câteva metode de imagine au fost redenumite (subimg → copy, blit → replace, find_eyes → find_eye, compress → compressed). De asemenea, adaugă sensor.get_fb() / comutatoarele AGC / AEC și ~60 de scripturi de exemplu. Aceasta este o versiune puternic incompatibilă — citiți modificările incompatibile de mai jos.
Aspecte importante¶
Urmărire de blob-uri pe bază de culoare —
find_blobs()preia direct praguri de culoare și returnează o listă plată de tupluri de blob-uri.Curățare imlib —
subimg()→copy(),blit()→replace(),find_eyes()→find_eye(),compress()→compressed().Senzor — s-au adăugat
sensor.get_fb()și comutatoarele de activare AGC/AEC.~60 de scripturi de exemplu adăugate/extinse.
Incompatibil: API-ul de blob-uri, metodele de imagine eliminate și câteva redenumiri — consultați modificările incompatibile.
Caracteristici noi¶
Senzor — s-au adăugat
sensor.get_fb()(recuperează tamponul de cadre al ultimului instantaneu),sensor.set_gain_ctrl(enable)(comută AGC) șisensor.set_exposure_ctrl(enable)(comută AEC).Imagine — indexarea imaginii (
img[i]) acceptă acum atât citirea, cât și scrierea pixelilor (tonuri de gri / RGB565 / JPEG); s-a adăugat unimage.compress()pe loc și un cuvânt-cheiequality=la funcțiile JPEG;find_blobs()/find_markers()/find_features()returnează acum o listă goală (iterabilă) în loc de o non-listă atunci când nu se găsește nimic.S-au adăugat ~60 de scripturi de exemplu (control al plăcii, filtre de imagine, urmărire de culoare, detectare de fețe / ochi / caracteristici, shield WiFi) și un al doilea exemplu de detectare a irisului.
Alte modificări și îmbunătățiri¶
image.histeq()funcționează acum pe imagini RGB565, nu doar pe cele în tonuri de gri.
Corectări de erori¶
S-a inițializat
pyb.DACla pornire pentru ca DAC-ul să funcționeze (#121), s-a corectat unimage.dilate()defect, coruperea de zero octeți aclient.send()la WINC, reiterarea îmbinării blob-urilor, o eroare de reinițializare a tamponului de fișiere care defecta sistemul de fișiere după prima utilizare, calcululTo_min/To_maxal termopilei (#113) și s-a aplicat un patch HAL I2C/DMA din amonte de la MicroPython.
Suport hardware și plăci¶
Shield WiFi — WINC1500 actualizat la fișierele de placă Rev-B.
pyb.DAC— perifericul DAC activat.
Modificări incompatibile ale API-ului¶
Modificări ale API-ului vizibile pentru utilizatori între v1.3.0 și v1.4.0. Domeniu: module C Python din modules/ și biblioteci Python din scripts/libraries/.
Fiecare modificare este etichetată cu impactul său:
major — afectează majoritatea scripturilor care au folosit funcționalitatea; va trebui să portați codul.
minor — API restrâns; afectează doar scripturile care l-au folosit.
Modificările sunt grupate după impact, în această ordine. Dacă doriți doar să vă portați codul, treceți la lista de verificare pentru migrare de la final. Fiecare hash de commit trimite către diff-ul său pe GitHub.
find_blobs() / find_markers() rescrise (major)¶
image.find_blobs() / find_markers() au fost rescrise pentru urmărirea pe bază de culoare: acum treceți direct praguri de culoare (și o funcție de filtrare opțională) în loc să operați pe o imagine presegmentată, iar rezultatul este o singură listă plată de tupluri de blob-uri cu 10 elemente (cu un câmp de cod de culoare) în loc de un arbore imbricat per culoare. Refaceți scripturile de urmărire de culoare pentru a trece praguri de culoare și a itera lista plată.
Metode de imagine de sine stătătoare eliminate (major)¶
image.threshold, image.centroid(), image.orientation_radians(), image.orientation_degrees() și image.pixels() au fost eliminate. Datele de centroid / orientare / număr de pixeli sunt acum disponibile ca câmpuri ale tuplurilor de blob-uri returnate de find_blobs().
Commit-uri: 9e5d379c1
Redenumiri de metode imlib (major)¶
Câteva metode de imagine au fost redenumite/refăcute: image.subimg() → image.copy(), image.blit() → image.replace(), iar image.blend() a fost modificat pentru a se potrivi cu celelalte operații pe două imagini. Metodele image.scale() / scaled() / rainbow() au fost eliminate (rainbow a fost mutat în modulul FIR). Actualizați apelurile la noile nume.
Commit-uri: b534dc6ff
find_eyes() redenumit în find_eye() (minor)¶
image.find_eyes() a fost redenumit în image.find_eye() și returnează acum un tuplu cu 2 elemente al irisului (x, y) în loc de tuplul anterior al ochilor. Redenumiți apelul și actualizați gestionarea valorii returnate.
Commit-uri: 7a01a9bed
image.compress() redenumit în compressed() (minor)¶
image.compress() (care returna o nouă imagine JPEG) a fost redenumit în image.compressed(); noul image.compress() comprimă în schimb imaginea pe loc și returnează None. image.save() a primit, de asemenea, un cuvânt-cheie quality= și returnează acum None în loc de True. Migrați img.compress(q) (care se aștepta la o imagine returnată) la img.compressed(quality=q).
Commit-uri: 367e5fdd3
Listă de verificare pentru migrare¶
Pentru o portare curată la v1.4.0, lucrul obișnuit este:
Refaceți codul de urmărire de culoare pentru a trece praguri de culoare către
find_blobs()/find_markers()și a itera lista plată de tupluri de blob-uri (rescrierea find_blobs).Citiți datele de centroid / orientare / pixeli din tuplurile de blob-uri în loc de metodele de sine stătătoare eliminate (metodele de imagine eliminate).
Redenumiți
subimg→copy,blit→replace, corectați apelurileblend()și înlocuițiscale/scaled/rainbow(redenumirile imlib).Redenumiți
find_eyes()→find_eye()(redenumirea find_eye) șicompress()→compressed()(redenumirea compress).
Toate celelalte scripturi rulează nemodificate.