v2.4.0¶
v2.4.0 kirjoittaa find_lines()-funktion uudelleen Hough-muunnokseen perustuvaksi tunnistimeksi, lisää find_line_segments()-, find_datamatrices()-data-matriisin dekoodauksen, sensor.set_vsync_output()-funktion, kuvaviipaleiden luvun/kirjoituksen sekä monia uusia skaalattuja kuvakokoja korkeampaa FPS:ää varten. find_lines(), match_descriptor() ja skip_frames() muuttuivat — lue alla olevat yhteensopivuutta rikkovat muutokset.
Kohokohdat¶
find_lines()— kirjoitettu uudelleen Hough-muunnokseen perustuvaksi viivantunnistimeksi, joka palauttaa viivaobjekteja (toimii nyt RGB565-muodossa, ei vain harmaasävyssä).find_line_segments()— tunnistaa äärelliset viivasegmentit.find_datamatrices()— data-matriisin dekoodaus.sensor.set_vsync_output()— ohjaa VSYNC-signaalia I/O-nastassa kameran synkronointia varten.Lisää kuvakokoja — monia uusia skaalattuja resoluutioita korkeampaa FPS:ää varten.
Rikkova:
find_lines(),match_descriptor()jaskip_frames()muuttuivat — katso yhteensopivuutta rikkovat muutokset.
Uudet ominaisuudet¶
image.find_line_segments()— etsi äärellisiä viivasegmenttejä; viivaobjektit saivat.length()-accessorin.image.find_datamatrices()— data-matriisin dekoodaus, mukana esimerkkiskriptit.sensor.set_vsync_output(pin)— tuota VSYNC-signaali GPIO-nastassa kameran synkronointia varten (OpenMV 2 / OpenMV 3).Kuvaviipaleet — kuvan alaindeksointi / puskuriprotokolla tukee nyt kuvadatan viipaleiden lukua ja kirjoitusta.
Lisätty monia uusia skaalattuja resoluutio- / kuvakokoyhdistelmiä korkeampien kuvataajuuksien tueksi;
clock.fps()nollaa nyt akkumulaattorinsa 2 sekunnin välein, jotta raportoitu FPS seuraa viimeaikaista nopeutta.
Muut muutokset ja parannukset¶
OV7725 ikkunoidaan QVGA-kokoon, kun resoluutio on ≤ VGA (vähemmän pudonneita kehyksiä korkeilla kuvausnopeuksilla), ja sen PLL asetettiin 6×:ksi pienennetyllä ulkoisella kellolla (OpenMV 2 48 MHz, OpenMV 3 54 MHz), mikä muuttaa sensorin kehysajoitusta.
Virheenkorjaukset¶
Kuvankäsittely:
Korjattu
compress_for_ide()-puskurin kokovirhe (aloitus-/lopetusmerkki), QR-dekoodaus (sekä upstream quirc -solubittikartan indeksointi- ja kohdistuskuvion rajakorjaukset).
Sensori ja yhteydet:
Alennettu OpenMV 2:n sensorin kellotaajuus toimimaan korkeamman sensorin PLL:n kanssa (kameran init/sync) ja saatu WINC
socket.recvfrom()palauttamaan todellinen vastaanotettu koko (virhe ei-positiivisesta koosta vanhentuneen arvon palauttamisen sijaan).
Laitteisto- ja korttituki¶
VSYNC-ulostulo GPIO-nastassa (OpenMV 2 / OpenMV 3)
sensor.set_vsync_output()-funktion taustalla.OpenMV 3 — otettu käyttöön
pyb.UARTUART1.
Yhteensopivuutta rikkovat API-muutokset¶
Käyttäjälle näkyvät API-rikkomukset v2.3.0:n ja v2.4.0:n välillä. Laajuus: Python-C-moduulit hakemistossa modules/ ja Python-kirjastot hakemistossa scripts/libraries/.
Jokainen muutos on merkitty vaikutuksensa mukaan:
major — vaikuttaa useimpiin skripteihin, jotka käyttivät ominaisuutta; sinun täytyy siirtää koodi.
minor — kapea API; vaikuttaa vain sitä käyttäneisiin skripteihin.
behavior — sama API, eri tulokset; tarkista uudelleen viritetyt skriptit.
Muutokset on ryhmitelty vaikutuksen mukaan tässä järjestyksessä. Jos haluat vain siirtää koodisi, hyppää lopussa olevaan migraatiotarkistuslistaan. Jokainen commit-hash linkittää diffiinsä GitHubissa.
find_lines() kirjoitettu uudelleen Hough-tunnistimeksi (major)¶
image.find_lines() kirjoitettiin uudelleen Hough-muunnokseen perustuvaksi tunnistimeksi. Se ei enää palauta listaa (x1, y1, x2, y2) -monikoita — se palauttaa viivaobjekteja (.line() / .x1() / .y1() / .x2() / .y2() / .theta() / .rho() / .magnitude()) — ja toimii nyt myös RGB565-muodossa (ei vain harmaasävyssä). threshold-argumentti muuttui 0.0–1.0-liukuluvusta kokonaislukuna ilmaistuksi reunamagnitudin summaksi, line.magnitude on nyt kokonaisluku, ja lisättiin uudet theta_margin / rho_margin -avainsanat. Siirrä monikoiden purkukoodi viivaobjekteihin ja viritä threshold uudelleen.
match_descriptor() palauttaa match-objektin (minor)¶
image.match_descriptor() (ORB) palauttaa nyt kptmatch-objektin, jossa on .cx() / .cy() / .x() / .y() / .w() / .h() / .count() / .theta() / .rect() -accessorit pelkän 8-monikon sijaan. Objekti on edelleen alaindeksoitavissa/viipaloitavissa, joten positionaalinen indeksointi toimii yhä, mutta koodin, joka teki isinstance(result, tuple) (tai käytti monikon metodeja), täytyy käyttää uusia accessoreja.
Commitit: e960546b6
sensor.skip_frames() on nyt aikapohjainen (behavior)¶
sensor.skip_frames() muokattiin hyväksymään time=-avainsana (oletus ~300 ms), ja se on nyt oletuksena aikapohjainen sen sijaan, että se ajaisi kiinteän kehysmäärän, pysähtyen aikaisin kun aika kuluu loppuun. Skriptien, jotka luottivat tarkkaan kehysmäärään, tulisi antaa eksplisiittinen määrä ja/tai asettaa time= vastaavasti.
Commitit: a039b5d1c
Migraatiotarkistuslista¶
Siistiä siirtymistä v2.4.0:aan varten tyypillinen työ on:
Siirrä
find_lines()-monikoiden purku viivaobjekteihin ja viritä uudelleen kokonaislukuthreshold(find_lines-uudelleenkirjoitus).Käytä
kptmatch-accessoreja sen sijaan, että käsittelisitmatch_descriptor()-tuloksia monikkona (match_descriptor-muutos).Anna eksplisiittinen määrä ja/tai
time=sensor.skip_frames()-funktiolle, jos luotit kiinteään kehysmäärään (skip_frames-muutos).
Kaikki muut skriptit toimivat muuttumattomina.