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 (subimg → copy, blit → replace, find_eyes → find_eye, compress → compressed). 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 barvy —
find_blobs()přijímá barevné prahy přímo a vrací plochý seznam n-tic blobů.Vyčištění imlib —
subimg()→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) asensor.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ányimage.compress()na místě a pojmenovaný argumentquality=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.DACpři startu, aby DAC fungoval (#121), opravena nefunkčníimage.dilate(), poškození nulovými bajty u WINCclient.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četTo_min/To_maxu 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.
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:
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).Č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).
Přejmenujte
subimg→copy,blit→replace, opravte voláníblend()a nahraďtescale/scaled/rainbow(přejmenování imlib).Přejmenujte
find_eyes()→find_eye()(přejmenování find_eye) acompress()→compressed()(přejmenování compress).
Všechny ostatní skripty běží beze změny.