v1.2.0

v1.2.0 on perustavanlaatuinen, erittäin laaja julkaisu, joka rakentaa suuren osan klassisesta OpenMV-kuvaus-API:sta: piirtämis-metodit, binääri- / morfologia-operaatiot, avainpistekuvaajat (FAST / FREAK / LBP), värimuunnokset ja image.statistics, BMP / PPM / JPEG -tiedosto-I/O:n, lcd-, mjpeg-, gif- ja mlx-lämpömoduulit, OV7725-kameran sekä monet sensor-ohjaimet. Joidenkin ydin-sensor-toimintojen käyttäytyminen muuttui — lue alla olevat rikkovat muutokset.

Kohokohdat

  • Piirtämis-APIdraw_line() / draw_rectangle() / draw_circle() / draw_string() / draw_cross() / draw_keypoints().

  • Binääri / morfologiabinary(), invert(), and/or/xor/..., erode() / dilate() / morph(), negate() / difference().

  • Avainpisteet — FAST / FREAK / LBP -kuvaajat metodeilla match_descriptor() / save_descriptor() / load_descriptor().

  • Uudet moduulitlcd, mjpeg, gif (väri) ja mlx lämpö.

  • OV7725-kameran tuki; image.statistics; BMP/PPM/JPEG-tiedosto-I/O.

  • Rikkova: sensor.reset()-, sensor.snapshot()- ja sensor.set_pixformat()-toimintojen käyttäytyminen muuttui — katso rikkovat muutokset.

Uudet ominaisuudet

  • Piirtäminen — lisätty image.draw_line() / draw_rectangle() / draw_circle() / draw_string() / draw_cross() / draw_keypoints() avainsana-argumenteilla (väri, paksuus, …).

  • Binääri / morfologia — lisätty image.binary(), invert(), and() / nand() / or() / nor() / xor() / xnor(), erode() / dilate() / morph(), negate() / difference(), pixels(), centroid(), orientation_radians() / orientation_degrees() sekä width() / height() / format().

  • Avainpisteet / kuvaajat — FAST-avainpisteiden poiminta metodilla find_keypoints(), yhtenäinen match_descriptor() sekä save_descriptor() / load_descriptor() FREAK- / LBP-kuvaajille, lisäksi sivuprofiilikasvojen Haar/LBP-kaskadi.

  • Väri / tilastotimage.statistics ja värimuunnosfunktiot (rgb_to_lab / lab_to_rgb / rgb_to_grayscale / grayscale_to_rgb).

  • Tiedosto-I/O — BMP / PPM (P2/P3/P5/P6) / JPEG -tiedostojen lataus ja tallennus (mukaan lukien harmaasävy-JPEG sekä 4:2:0 / 4:2:2 -krominanssin alinäytteistys).

  • Moduulit — uudet lcd (LCD-laajennuskortti), mjpeg (videotallennus), väri-gif (jossa Gif.loop()) ja mlx-lämpökameramoduulit, kukin esimerkkiskripteineen.

  • Sensori — lisätty sensor.get_id() (+ OV9650/OV2640/OV7725 PID-vakiot), sensor.set_special_effect() (SDE_*-vakiot), sensor.set_image_filter() (FILTER_BW / FILTER_SKIN), HQVGA-kehyskoko sekä image.set_pixel(x, y, …).

  • WiFi — lisätty ATWINC1500 WiFi-ajuri ja OpenMV 1/2 -BSP-pohjatyö sekä BLE-esimerkki.

Muut muutokset ja parannukset

  • Kehyspuskuri on nyt JPEG-pakattu ennen suoratoistoa OpenMV IDE:hen (pienempi kaistanleveys); JPEG-pakkaus tehdään paikallaan; OV7725:n V/P-zoomaus mahdollistaa mielivaltaisen skaalauksen; parannettu (nopeampi) Haar-kasvontunnistus, joka toimii QVGA-tarkkuudella.

Virheenkorjaukset

Kuvaus:

  • Korjattu integraalikuvan laskenta, median()-suotimen vioittuminen, painopisteen laskenta, RGB-iho- / mustavalkosuotimet RGB-syötteellä sekä nopeampi harmaasävy-BMP/PPM-luku/-kirjoitus.

Sensori ja järjestelmä:

  • Korjattu pyb.Servo-ajastimet (Servo toimii nyt), HQVGA-resoluutio, SD-kortin alustuksen luotettavuus, tallennustilan uudelleenalustus pehmeän nollauksen jälkeen sekä REPL:n uudelleenkäynnistys, kun skriptiä ei ole.

Laitteisto- ja korttituki

  • OV7725-kamerasensori.

  • LCD-laajennuskortti (lcd-moduuli), mlx-lämpökamera ja ATWINC1500 WiFi-pohjatyö.

Rikkovat API-muutokset

Käyttäjälle näkyvät API-rikot versioiden v1.1.0 ja v1.2.0 välillä. Laajuus: Python-C-moduulit hakemistossa modules/ ja Python-kirjastot hakemistossa scripts/libraries/.

Kaikki kolme rikkovaa muutosta ovat ydin-sensor-funktioiden käyttäytymismuutoksia (sama API, eri käyttäytyminen) — tarkista vaikutuksen alaiset skriptit uudelleen. Kukin commit-hash linkittää diffiinsä GitHubissa. (Valtaosa tästä julkaisusta on uutta API:a, joka rakennettiin v1.1→v1.2-välillä ja on siksi lisäävää, ei rikkovaa.)

sensor.reset() ei enää sovella oletuskonfiguraatiota (käyttäytyminen)

sensor.reset() ei enää sovella sisäänrakennettua oletuskonfiguraatiota (pixformat / framesize / framerate / gain / contrast / brightness / saturation). Skriptien, jotka luottivat siihen, että reset() jättää käyttökelpoisen oletuksen, on nyt nimenomaisesti kutsuttava sensor.set_pixformat() ja sensor.set_framesize() (sekä muut asetukset) reset()-kutsun jälkeen.

Commitit: d1e782df3

sensor.snapshot() nostaa poikkeuksen aikakatkaisussa (käyttäytyminen)

sensor.snapshot() nostaa nyt RuntimeError("Sensor Timeout!!")-poikkeuksen, kun sensori aikakatkaistuu, sen sijaan että jäisi roikkumaan loputtomiin. Kääri snapshot() try / except RuntimeError -rakenteeseen, jos sinun on siedettävä aikakatkaisuja.

Commitit: e3f41d674

sensor.set_pixformat() nostaa poikkeuksen ei-tuetussa muodossa (käyttäytyminen)

sensor.set_pixformat() nostaa nyt poikkeuksen, kun sille annetaan ei-tuettu pikseliformaatti, sen sijaan että palauttaisi False. Koodin, joka tarkisti False-paluuarvon, on nyt napattava poikkeus.

Commitit: e0c5822c2

Siirtymän tarkistuslista

Puhtaaseen siirtoon versioon v1.2.0 tyypillinen työ on:

  1. Aseta nimenomaisesti sensor.set_pixformat() / sensor.set_framesize() sensor.reset()-kutsun jälkeen (reset-muutos).

  2. Kääri sensor.snapshot() try / except RuntimeError -rakenteeseen, jos sinun on siedettävä sensorin aikakatkaisuja (snapshot-muutos).

  3. Nappaa sensor.set_pixformat()-poikkeus sen sijaan, että tarkistaisit False-arvoa (set_pixformat-muutos).

Kaikki muut skriptit toimivat muuttumattomina.