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 (subimgcopy, blitreplace, find_eyesfind_eye, compresscompressed). 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ássubimg()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), a sensor.set_gain_ctrl(enable) (AGC be-/kikapcsolása) és a sensor.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 egy quality= kulcsszó a JPEG függvényekhez; a find_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.DAC inicializálva indításkor, hogy a DAC működjön (#121), javítva egy hibás image.dilate(), a WINC client.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 thermopile To_min / To_max szá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.

Commitok: d1ff36602, 16daeb83a

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:

  1. 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).

  2. 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).

  3. Nevezd át a subimgcopy, blitreplace hívásokat, javítsd a blend() hívásokat, és cseréld le a scale / scaled / rainbow hívásokat (az imlib átnevezések).

  4. Nevezd át a find_eyes()find_eye() (a find_eye átnevezés) és a compress()compressed() (a compress átnevezés) hívásokat.

Minden más szkript változatlanul fut.