v1.4.0

v1.4.0 je zásadní reorganizace imlib. find_blobs() / find_markers() byly přepsány pro přímé sledování podle barevného prahu, mnoho samostatných metod obrazu bylo sloučeno do n-tic blobů a několik metod obrazu bylo přejmenováno (subimgcopy, blitreplace, find_eyesfind_eye, compresscompressed). Přidává také přepínače sensor.get_fb() / AGC / AEC a ~60 ukázkových skriptů. Jde o vydání s mnoha zásadními změnami — přečtěte si níže uvedené zásadní změny.

Hlavní novinky

  • Sledování blobů podle barvyfind_blobs() přijímá barevné prahy přímo a vrací plochý seznam n-tic blobů.

  • Vyčištění imlibsubimg()copy(), blit()replace(), find_eyes()find_eye(), compress()compressed().

  • Senzor — přidány sensor.get_fb() a přepínače pro povolení AGC/AEC.

  • Přidáno/rozšířeno ~60 ukázkových skriptů.

  • Zásadní: API blobů, odstraněné metody obrazu a několik přejmenování — viz zásadní změny.

Nové funkce

  • Senzor — přidány sensor.get_fb() (získání snímkového bufferu posledního snímku), sensor.set_gain_ctrl(enable) (přepínání AGC) a sensor.set_exposure_ctrl(enable) (přepínání AEC).

  • Obraz — indexování obrazu (img[i]) nyní podporuje jak čtení, tak zápis pixelů (stupně šedi / RGB565 / JPEG); přidány image.compress() na místě a pojmenovaný argument quality= u funkcí JPEG; find_blobs() / find_markers() / find_features() nyní při nenalezení ničeho vracejí prázdný (iterovatelný) seznam místo hodnoty, která není seznamem.

  • Přidáno ~60 ukázkových skriptů (ovládání desky, obrazové filtry, sledování barvy, detekce obličeje / oka / příznaků, WiFi shield) a druhý příklad detekce duhovky.

Další změny a vylepšení

  • image.histeq() nyní funguje na obrazech RGB565, nejen ve stupních šedi.

Opravy chyb

  • Inicializován pyb.DAC při startu, aby DAC fungoval (#121), opravena nefunkční image.dilate(), poškození nulovými bajty u WINC client.send(), opětovná iterace při slučování blobů, chyba opětovné inicializace souborového bufferu, která rozbila souborový systém po prvním použití, výpočet To_min / To_max u termopilu (#113) a aplikován upstream patch HAL I2C/DMA z MicroPython.

Hardware a podpora desek

  • WiFi shield — WINC1500 aktualizován na soubory desky Rev-B.

  • pyb.DAC — povolena periferie DAC.

Zásadní změny API

Pro uživatele viditelné změny API mezi v1.3.0 a v1.4.0. Rozsah: C-moduly Pythonu v modules/ a knihovny Pythonu v scripts/libraries/.

Každá změna je označena svým dopadem:

  • major — ovlivňuje většinu skriptů, které danou funkci používaly; budete muset upravit kód.

  • minor — úzké API; ovlivňuje pouze skripty, které jej používaly.

Změny jsou seskupeny podle dopadu v tomto pořadí. Pokud chcete jen upravit svůj kód, přejděte na kontrolní seznam pro migraci na konci. Každý hash commitu odkazuje na svůj diff na GitHubu.

find_blobs() / find_markers() přepsány (major)

image.find_blobs() / find_markers() byly přepsány pro sledování podle barvy: nyní předáváte barevné prahy (a volitelnou filtrovací funkci) přímo, místo abyste pracovali s předem segmentovaným obrazem, a výsledkem je jediný plochý seznam 10prvkových n-tic blobů (s polem barevného kódu) namísto vnořeného stromu po barvách. Přepracujte skripty pro sledování barvy tak, aby předávaly barevné prahy a iterovaly plochý seznam.

Commity: d1ff36602, 16daeb83a

Samostatné metody obrazu odstraněny (major)

image.threshold, image.centroid(), image.orientation_radians(), image.orientation_degrees() a image.pixels() byly odstraněny. Data o těžišti / orientaci / počtu pixelů jsou nyní dostupná jako pole n-tic blobů vrácených funkcí find_blobs().

Commity: 9e5d379c1

Přejmenování metod imlib (major)

Několik metod obrazu bylo přejmenováno/přepracováno: image.subimg()image.copy(), image.blit()image.replace() a image.blend() byla změněna tak, aby odpovídala ostatním operacím se dvěma obrazy. Metody image.scale() / scaled() / rainbow() byly odstraněny (rainbow byl přesunut do modulu FIR). Aktualizujte volání na nové názvy.

Commity: b534dc6ff

find_eyes() přejmenováno na find_eye() (minor)

image.find_eyes() bylo přejmenováno na image.find_eye() a nyní vrací 2-n-tici duhovky (x, y) místo předchozí n-tice očí. Přejmenujte volání a aktualizujte zpracování návratové hodnoty.

Commity: 7a01a9bed

image.compress() přejmenováno na compressed() (minor)

image.compress() (která vracela nový JPEG obraz) byla přejmenována na image.compressed(); nová image.compress() místo toho komprimuje obraz na místě a vrací None. image.save() rovněž získala pojmenovaný argument quality= a nyní vrací None místo True. Migrujte img.compress(q) (očekávající vrácený obraz) na img.compressed(quality=q).

Commity: 367e5fdd3

Kontrolní seznam pro migraci

Pro čistý přechod na v1.4.0 obvykle platí toto:

  1. Přepracujte kód pro sledování barvy tak, aby předával barevné prahy funkcím find_blobs() / find_markers() a iteroval plochý seznam n-tic blobů (přepis find_blobs).

  2. Čtěte data o těžišti / orientaci / pixelech z n-tic blobů místo z odstraněných samostatných metod (odstraněné metody obrazu).

  3. Přejmenujte subimgcopy, blitreplace, opravte volání blend() a nahraďte scale / scaled / rainbow (přejmenování imlib).

  4. Přejmenujte find_eyes()find_eye() (přejmenování find_eye) a compress()compressed() (přejmenování compress).

Všechny ostatní skripty běží beze změny.