v1.4.0¶
v1.4.0 is een fundamentele imlib-reorganisatie. find_blobs() / find_markers() zijn herschreven voor directe kleurdrempelwaarde-tracking, veel losstaande beeldmethoden zijn opgenomen in blob-tuples, en diverse beeldmethoden zijn hernoemd (subimg → copy, blit → replace, find_eyes → find_eye, compress → compressed). Het voegt ook sensor.get_fb() / AGC / AEC-toggles en ~60 voorbeeldscripts toe. Dit is een sterk breaking release — lees de breaking changes hieronder.
Hoogtepunten¶
Kleurgebaseerde blob-tracking —
find_blobs()neemt kleurdrempelwaarden direct aan en geeft een platte lijst van blob-tuples terug.Imlib-opschoning —
subimg()→copy(),blit()→replace(),find_eyes()→find_eye(),compress()→compressed().Sensor —
sensor.get_fb()en AGC/AEC-inschakeltoggles toegevoegd.~60 voorbeeldscripts toegevoegd/uitgebreid.
Breaking: de blob-API, verwijderde beeldmethoden en diverse hernoemingen — zie de breaking changes.
Nieuwe functies¶
Sensor —
sensor.get_fb()toegevoegd (haal de laatste snapshot-framebuffer op),sensor.set_gain_ctrl(enable)(AGC in-/uitschakelen) ensensor.set_exposure_ctrl(enable)(AEC in-/uitschakelen).Image — beeldsubscript (
img[i]) ondersteunt nu zowel het lezen als schrijven van pixels (grijswaarden / RGB565 / JPEG); een in-placeimage.compress()en eenquality=-keyword op de JPEG-functies toegevoegd;find_blobs()/find_markers()/find_features()geven nu een lege (itereerbare) lijst terug in plaats van een niet-lijst wanneer er niets wordt gevonden.~60 voorbeeldscripts toegevoegd (boardbesturing, beeldfilters, kleurtracking, gezichts- / oog- / kenmerkdetectie, WiFi-shield) en een tweede iris-detectievoorbeeld.
Overige wijzigingen en verbeteringen¶
image.histeq()werkt nu op RGB565-afbeeldingen, niet alleen op grijswaarden.
Bugfixes¶
pyb.DACbij het opstarten geïnitialiseerd zodat de DAC werkt (#121), een kapotteimage.dilate()gecorrigeerd, de zero-byte-corruptie van WINCclient.send(), blob-merge-heriteratie, een file-buffer-herinitialisatiebug die het bestandssysteem na het eerste gebruik brak, de thermopileTo_min/To_max-berekening (#113), en een upstream MicroPython HAL I2C/DMA-patch toegepast.
Hardware- en boardondersteuning¶
WiFi-shield — WINC1500 bijgewerkt naar Rev-B-boardbestanden.
pyb.DAC— DAC-randapparaat ingeschakeld.
Breaking API-wijzigingen¶
Voor gebruikers zichtbare API-breaks tussen v1.3.0 en v1.4.0. Bereik: Python C-modules in modules/ en Python-bibliotheken in scripts/libraries/.
Elke wijziging is voorzien van een label voor de impact:
major — heeft invloed op de meeste scripts die de functie gebruikten; je moet code porten.
minor — beperkte API; heeft alleen invloed op scripts die het gebruikten.
Wijzigingen zijn in die volgorde gegroepeerd op impact. Als je alleen je code wilt porten, ga dan naar de migratiechecklist aan het einde. Elke commit-hash linkt naar zijn diff op GitHub.
find_blobs() / find_markers() herschreven (major)¶
image.find_blobs() / find_markers() zijn herschreven voor kleurgebaseerde tracking: je geeft nu kleurdrempelwaarden (en een optionele filterfunctie) direct door in plaats van te werken op een vooraf gesegmenteerde afbeelding, en het resultaat is een enkele platte lijst van blob-tuples met 10 elementen (met een kleurcodeveld) in plaats van een geneste boom per kleur. Herwerk kleurtracking-scripts om kleurdrempelwaarden door te geven en de platte lijst te itereren.
Losstaande beeldmethoden verwijderd (major)¶
image.threshold, image.centroid(), image.orientation_radians(), image.orientation_degrees() en image.pixels() zijn verwijderd. De centroid- / oriëntatie- / pixeltellingsgegevens zijn nu beschikbaar als velden van de blob-tuples die door find_blobs() worden teruggegeven.
Commits: 9e5d379c1
Imlib-methodehernoemingen (major)¶
Diverse beeldmethoden zijn hernoemd/herwerkt: image.subimg() → image.copy(), image.blit() → image.replace(), en image.blend() is gewijzigd om bij de andere twee-afbeeldingsbewerkingen aan te sluiten. De methoden image.scale() / scaled() / rainbow() zijn verwijderd (rainbow is naar de FIR-module verplaatst). Werk aanroepen bij naar de nieuwe namen.
Commits: b534dc6ff
find_eyes() hernoemd naar find_eye() (minor)¶
image.find_eyes() is hernoemd naar image.find_eye() en geeft nu een 2-tuple iris (x, y) terug in plaats van de vorige eyes-tuple. Hernoem de aanroep en werk de afhandeling van de retourwaarde bij.
Commits: 7a01a9bed
image.compress() hernoemd naar compressed() (minor)¶
image.compress() (dat een nieuwe JPEG-afbeelding teruggaf) is hernoemd naar image.compressed(); de nieuwe image.compress() comprimeert de afbeelding in plaats daarvan in-place en geeft None terug. image.save() heeft ook een quality=-keyword gekregen en geeft nu None terug in plaats van True. Migreer img.compress(q) (dat een teruggegeven afbeelding verwacht) naar img.compressed(quality=q).
Commits: 367e5fdd3
Migratiechecklist¶
Voor een schone overstap naar v1.4.0 is het typische werk:
Herwerk kleurtracking-code om kleurdrempelwaarden door te geven aan
find_blobs()/find_markers()en itereer de platte blob-tuple-lijst (de find_blobs-herschrijving).Lees centroid- / oriëntatie- / pixelgegevens uit de blob-tuples in plaats van de verwijderde losstaande methoden (de verwijderde beeldmethoden).
Hernoem
subimg→copy,blit→replace, corrigeerblend()-aanroepen, en vervangscale/scaled/rainbow(de imlib-hernoemingen).Hernoem
find_eyes()→find_eye()(de find_eye-hernoeming) encompress()→compressed()(de compress-hernoeming).
Alle andere scripts draaien ongewijzigd.