v1.4.0¶
A v1.4.0 egy alapozó imlib-átszervezés. A find_blobs() / find_markers() újraírásra került a közvetlen szín-küszöbértékes követéshez, sok különálló képmetódus beolvadt a folt-tuple-ökbe, és több képmetódust átneveztek (subimg → copy, blit → replace, find_eyes → find_eye, compress → compressed). Emellett hozzáadja az sensor.get_fb() / AGC / AEC kapcsolókat és ~60 példaszkriptet. Ez egy erősen törést okozó kiadás — olvasd el az alábbi törést okozó változásokat.
Kiemelt újdonságok¶
Szín-alapú foltkövetés — a
find_blobs()közvetlenül vesz át szín-küszöbértékeket, és folt-tuple-ök lapos listáját adja vissza.Imlib tisztítás —
subimg()→copy(),blit()→replace(),find_eyes()→find_eye(),compress()→compressed().Érzékelő — hozzáadva az
sensor.get_fb()és az AGC/AEC engedélyező kapcsolók.~60 példaszkript hozzáadva/bővítve.
Törést okozó: a folt-API, az eltávolított képmetódusok és több átnevezés — lásd a törést okozó változásokat.
Új funkciók¶
Érzékelő — hozzáadva az
sensor.get_fb()(az utolsó pillanatkép képkocka-pufferének lekérése), asensor.set_gain_ctrl(enable)(AGC be-/kikapcsolása) és asensor.set_exposure_ctrl(enable)(AEC be-/kikapcsolása).Kép — a kép-indexelés (
img[i]) mostantól támogatja a képpontok olvasását és írását is (szürkeárnyalatos / RGB565 / JPEG); hozzáadva egy helyben működőimage.compress()és egyquality=kulcsszó a JPEG függvényekhez; afind_blobs()/find_markers()/find_features()mostantól üres (bejárható) listát ad vissza nem-lista helyett, ha semmit sem talál.Hozzáadva ~60 példaszkript (kártyavezérlés, képszűrők, színkövetés, arc- / szem- / jellemzőészlelés, WiFi shield) és egy második írisz-észlelési példa.
Egyéb változások és fejlesztések¶
Az
image.histeq()mostantól RGB565 képeken is működik, nem csak szürkeárnyalatoson.
Hibajavítások¶
A
pyb.DACinicializálva indításkor, hogy a DAC működjön (#121), javítva egy hibásimage.dilate(), a WINCclient.send()nulla bájtos sérülése, a folt-egyesítés újrabejárása, egy fájlpuffer-újrainicializálási hiba, amely az első használat után elrontotta a fájlrendszert, a thermopileTo_min/To_maxszámítása (#113), valamint alkalmazva egy upstream MicroPython HAL I2C/DMA javítás.
Hardver- és kártyatámogatás¶
WiFi shield — WINC1500 frissítve a Rev-B kártyafájlokra.
pyb.DAC— DAC periféria engedélyezve.
Törést okozó API-változások¶
A felhasználó számára látható API-törések a v1.3.0 és a v1.4.0 között. Hatókör: Python C-modulok a modules/ mappában és Python könyvtárak a scripts/libraries/ mappában.
Minden változás meg van jelölve a hatásával:
major — a funkciót használó szkriptek többségét érinti; portolnod kell majd a kódot.
minor — szűk API; csak az azt használó szkripteket érinti.
A változások hatás szerint csoportosítva ebben a sorrendben. Ha csak a kódodat szeretnéd portolni, ugorj a migrációs ellenőrzőlistához a végén. Minden commit-hash a GitHubon lévő diffjére hivatkozik.
A find_blobs() / find_markers() újraírva (major)¶
Az image.find_blobs() / find_markers() újraírásra került a szín-alapú követéshez: mostantól közvetlenül adsz át szín-küszöbértékeket (és egy opcionális szűrőfüggvényt) ahelyett, hogy egy előre szegmentált képen működnél, és az eredmény egy egyetlen lapos lista 10 elemű folt-tuple-ökből (egy színkód-mezővel) egy beágyazott, színenkénti fa helyett. Dolgozd át a színkövető szkripteket úgy, hogy szín-küszöbértékeket adjanak át, és bejárják a lapos listát.
Különálló képmetódusok eltávolítva (major)¶
Az image.threshold, az image.centroid(), az image.orientation_radians(), az image.orientation_degrees() és az image.pixels() eltávolításra került. A centroid / orientáció / képpontszám adatok mostantól a find_blobs() által visszaadott folt-tuple-ök mezőiként érhetők el.
Commitok: 9e5d379c1
Imlib metódus-átnevezések (major)¶
Több képmetódust átneveztek/átdolgoztak: image.subimg() → image.copy(), image.blit() → image.replace(), az image.blend() pedig megváltozott, hogy illeszkedjen a másik két kétképes művelethez. Az image.scale() / scaled() / rainbow() metódusok eltávolításra kerültek (a rainbow áthelyezve a FIR modulba). Frissítsd a hívásokat az új nevekre.
Commitok: b534dc6ff
A find_eyes() átnevezve find_eye()-re (minor)¶
Az image.find_eyes() átnevezve image.find_eye()-re, és mostantól egy 2-elemű írisz (x, y) tuple-t ad vissza a korábbi szemek tuple helyett. Nevezd át a hívást, és frissítsd a visszatérési érték kezelését.
Commitok: 7a01a9bed
Az image.compress() átnevezve compressed()-re (minor)¶
Az image.compress() (amely új JPEG képet adott vissza) átnevezve image.compressed()-re; az új image.compress() ehelyett helyben tömöríti a képet, és None értéket ad vissza. Az image.save() is kapott egy quality= kulcsszót, és mostantól None értéket ad vissza True helyett. Migráld az img.compress(q) hívásokat (amelyek visszaadott képre számítanak) img.compressed(quality=q)-ra.
Commitok: 367e5fdd3
Migrációs ellenőrzőlista¶
A v1.4.0-ra való tiszta átálláshoz a szokásos teendők:
Dolgozd át a színkövető kódot úgy, hogy szín-küszöbértékeket adjon át a
find_blobs()/find_markers()függvénynek, és bejárja a lapos folt-tuple listát (a find_blobs újraírás).Olvasd ki a centroid / orientáció / képpont adatokat a folt-tuple-ökből az eltávolított különálló metódusok helyett (az eltávolított képmetódusok).
Nevezd át a
subimg→copy,blit→replacehívásokat, javítsd ablend()hívásokat, és cseréld le ascale/scaled/rainbowhívásokat (az imlib átnevezések).Nevezd át a
find_eyes()→find_eye()(a find_eye átnevezés) és acompress()→compressed()(a compress átnevezés) hívásokat.
Minden más szkript változatlanul fut.