v1.4.0¶
v1.4.0 är en grundläggande omorganisation av imlib. find_blobs() / find_markers() skrevs om för direkt färgtröskelspårning, många fristående bildmetoder slogs samman i blob-tupler och flera bildmetoder döptes om (subimg → copy, blit → replace, find_eyes → find_eye, compress → compressed). Den lägger också till sensor.get_fb() / AGC / AEC-växlingar och ~60 exempelskript. Detta är en kraftigt brytande release — läs de brytande ändringarna nedan.
Höjdpunkter¶
Färgbaserad blob-spårning —
find_blobs()tar färgtröskelvärden direkt och returnerar en platt lista med blob-tupler.Imlib-rensning —
subimg()→copy(),blit()→replace(),find_eyes()→find_eye(),compress()→compressed().Sensor — lade till
sensor.get_fb()och växlingar för att aktivera AGC/AEC.~60 exempelskript tillagda/utökade.
Brytande: blob-API:et, borttagna bildmetoder och flera omdöpningar — se de brytande ändringarna.
Nya funktioner¶
Sensor — lade till
sensor.get_fb()(hämtar bildbufferten från den senaste stillbilden),sensor.set_gain_ctrl(enable)(växlar AGC) ochsensor.set_exposure_ctrl(enable)(växlar AEC).Image — bildindexering (
img[i]) stöder nu både läsning och skrivning av pixlar (gråskala / RGB565 / JPEG); lade till enimage.compress()som arbetar på plats och ettquality=-nyckelord på JPEG-funktionerna;find_blobs()/find_markers()/find_features()returnerar nu en tom (itererbar) lista istället för ett icke-list-värde när inget hittas.Lade till ~60 exempelskript (kortstyrning, bildfilter, färgspårning, detektering av ansikte / öga / särdrag, WiFi-sköld) och ett andra exempel på irisdetektering.
Övriga ändringar och förbättringar¶
image.histeq()fungerar nu på RGB565-bilder, inte bara gråskala.
Felrättningar¶
Initierade
pyb.DACvid uppstart så att DAC:en fungerar (#121), rättade en trasigimage.dilate(), korruptionen av nollbyte i WINCclient.send(), omiterering vid blob-sammanslagning, en buggi ominitiering av filbuffert som förstörde filsystemet efter första användningen, beräkningen av termopilensTo_min/To_max(#113) samt tillämpade en uppströms MicroPython-HAL-I2C/DMA-patch.
Hårdvara och kortstöd¶
WiFi-sköld — WINC1500 uppdaterad till kortfiler för Rev-B.
pyb.DAC— DAC-kringutrustning aktiverad.
Brytande API-ändringar¶
Användarsynliga API-brott mellan v1.3.0 och v1.4.0. Omfattning: Python-C-moduler i modules/ och Python-bibliotek i scripts/libraries/.
Varje ändring är märkt med sin påverkan:
major — påverkar de flesta skript som använde funktionen; du behöver porta kod.
minor — smalt API; påverkar bara skript som använde det.
Ändringarna är grupperade efter påverkan i den ordningen. Om du bara vill porta din kod kan du hoppa till migreringschecklistan i slutet. Varje commit-hash länkar till sin diff på GitHub.
find_blobs() / find_markers() omskrivna (major)¶
image.find_blobs() / find_markers() skrevs om för färgbaserad spårning: du skickar nu färgtröskelvärden (och en valfri filterfunktion) direkt istället för att arbeta på en försegmenterad bild, och resultatet är en enda platt lista med 10-elements blob-tupler (med ett färgkodsfält) istället för ett nästlat per-färg-träd. Bearbeta om färgspårningsskript så att de skickar färgtröskelvärden och itererar den platta listan.
Fristående bildmetoder borttagna (major)¶
image.threshold, image.centroid(), image.orientation_radians(), image.orientation_degrees() och image.pixels() togs bort. Data för centroid / orientering / pixelantal finns nu tillgängliga som fält i de blob-tupler som returneras av find_blobs().
Commits: 9e5d379c1
Omdöpning av imlib-metoder (major)¶
Flera bildmetoder döptes om/bearbetades om: image.subimg() → image.copy(), image.blit() → image.replace() och image.blend() ändrades för att matcha de andra två-bildsoperationerna. Metoderna image.scale() / scaled() / rainbow() togs bort (rainbow flyttades till FIR-modulen). Uppdatera anrop till de nya namnen.
Commits: b534dc6ff
find_eyes() omdöpt till find_eye() (minor)¶
image.find_eyes() döptes om till image.find_eye() och returnerar nu en 2-tupel iris (x, y) istället för den tidigare ögon-tupeln. Döp om anropet och uppdatera hanteringen av returvärdet.
Commits: 7a01a9bed
image.compress() omdöpt till compressed() (minor)¶
image.compress() (som returnerade en ny JPEG-bild) döptes om till image.compressed(); den nya image.compress() komprimerar istället bilden på plats och returnerar None. image.save() fick också ett quality=-nyckelord och returnerar nu None istället för True. Migrera img.compress(q) (som förväntar sig en returnerad bild) till img.compressed(quality=q).
Commits: 367e5fdd3
Migreringschecklista¶
För en ren portning till v1.4.0 är det typiska arbetet:
Bearbeta om färgspårningskod så att den skickar färgtröskelvärden till
find_blobs()/find_markers()och itererar den platta blob-tupellistan (omskrivningen av find_blobs).Läs data för centroid / orientering / pixel från blob-tuplerna istället för de borttagna fristående metoderna (de borttagna bildmetoderna).
Döp om
subimg→copy,blit→replace, rättablend()-anrop och ersättscale/scaled/rainbow(imlib-omdöpningarna).Döp om
find_eyes()→find_eye()(omdöpningen av find_eye) ochcompress()→compressed()(omdöpningen av compress).
Alla andra skript körs oförändrade.