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 (subimgcopy, blitreplace, find_eyesfind_eye, compresscompressed). 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-trackingfind_blobs() neemt kleurdrempelwaarden direct aan en geeft een platte lijst van blob-tuples terug.

  • Imlib-opschoningsubimg()copy(), blit()replace(), find_eyes()find_eye(), compress()compressed().

  • Sensorsensor.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

  • Sensorsensor.get_fb() toegevoegd (haal de laatste snapshot-framebuffer op), sensor.set_gain_ctrl(enable) (AGC in-/uitschakelen) en sensor.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-place image.compress() en een quality=-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.DAC bij het opstarten geïnitialiseerd zodat de DAC werkt (#121), een kapotte image.dilate() gecorrigeerd, de zero-byte-corruptie van WINC client.send(), blob-merge-heriteratie, een file-buffer-herinitialisatiebug die het bestandssysteem na het eerste gebruik brak, de thermopile To_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.

Commits: d1ff36602, 16daeb83a

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:

  1. Herwerk kleurtracking-code om kleurdrempelwaarden door te geven aan find_blobs() / find_markers() en itereer de platte blob-tuple-lijst (de find_blobs-herschrijving).

  2. Lees centroid- / oriëntatie- / pixelgegevens uit de blob-tuples in plaats van de verwijderde losstaande methoden (de verwijderde beeldmethoden).

  3. Hernoem subimgcopy, blitreplace, corrigeer blend()-aanroepen, en vervang scale / scaled / rainbow (de imlib-hernoemingen).

  4. Hernoem find_eyes()find_eye() (de find_eye-hernoeming) en compress()compressed() (de compress-hernoeming).

Alle andere scripts draaien ongewijzigd.