v1.2.0¶
A v1.2.0 egy alapozó, igen nagy kiadás, amely a klasszikus OpenMV képalkotási API nagy részét kiépíti: a rajzolási metódusokat, a bináris / morfológiai műveleteket, a kulcspont-leírókat (FAST / FREAK / LBP), a színkonverziókat és az image.statistics osztályt, a BMP / PPM / JPEG fájl I/O-t, az lcd, az mjpeg, a gif és az mlx hőkamera-modulokat, az OV7725 kamerát, valamint számos sensor vezérlőt. Néhány alapvető sensor viselkedés megváltozott — olvasd el az alábbi törést okozó változásokat.
Kiemelt újdonságok¶
Rajzolási API —
draw_line()/draw_rectangle()/draw_circle()/draw_string()/draw_cross()/draw_keypoints().Bináris / morfológia —
binary(),invert(),and/or/xor/...,erode()/dilate()/morph(),negate()/difference().Kulcspontok — FAST / FREAK / LBP leírók
match_descriptor()/save_descriptor()/load_descriptor()függvényekkel.OV7725 kameratámogatás;
image.statistics; BMP/PPM/JPEG fájl I/O.Törést okozó: az
sensor.reset(), azsensor.snapshot()és azsensor.set_pixformat()viselkedése megváltozott — lásd a törést okozó változásokat.
Új funkciók¶
Rajzolás — hozzáadva az
image.draw_line()/draw_rectangle()/draw_circle()/draw_string()/draw_cross()/draw_keypoints()kulcsszavas argumentumokkal (szín, vastagság, …).Bináris / morfológia — hozzáadva az
image.binary(),invert(),and()/nand()/or()/nor()/xor()/xnor(),erode()/dilate()/morph(),negate()/difference(),pixels(),centroid(),orientation_radians()/orientation_degrees(), valamint awidth()/height()/format().Kulcspontok / leírók — FAST kulcspont-kinyerés a
find_keypoints()segítségével, egységesmatch_descriptor()éssave_descriptor()/load_descriptor()a FREAK / LBP számára, valamint egy profil-arc Haar/LBP kaszkád.Szín / statisztika —
image.statisticsés színkonverziós függvények (rgb_to_lab/lab_to_rgb/rgb_to_grayscale/grayscale_to_rgb).Fájl I/O — BMP / PPM (P2/P3/P5/P6) / JPEG betöltése és mentése (beleértve a szürkeárnyalatos JPEG-et és a 4:2:0 / 4:2:2 chroma-alulmintavételezést).
Modulok — új
lcd(LCD shield),mjpeg(videórögzítés), színesgif(Gif.loop()függvénnyel) ésmlxhőkamera-modulok, mindegyik példaszkriptekkel.Érzékelő — hozzáadva az
sensor.get_id()(+ OV9650/OV2640/OV7725 PID konstansok), azsensor.set_special_effect()(SDE_* konstansok), asensor.set_image_filter()(FILTER_BW / FILTER_SKIN), aHQVGAképkockaméret és azimage.set_pixel(x, y, …).WiFi — hozzáadva az ATWINC1500 WiFi-illesztőprogram és az OpenMV 1/2 BSP alapjai, valamint egy BLE példa.
Egyéb változások és fejlesztések¶
A képkocka-puffer mostantól JPEG-tömörített, mielőtt az OpenMV IDE-be streamelődne (kisebb sávszélesség); a JPEG-tömörítés helyben történik; az OV7725 H/V nagyítás tetszőleges méretezést tesz lehetővé; javított (gyorsabb) Haar arcfelismerés, amely QVGA felbontáson fut.
Hibajavítások¶
Képalkotás:
Javítva az integrálkép-számítás, a
median()szűrő sérülése, a centroid-számítás, az RGB bőr- / fekete-fehér szűrők RGB bemeneten, valamint gyorsabb szürkeárnyalatos BMP/PPM olvasás/írás.
Érzékelő és rendszer:
Javítva a
pyb.Servoidőzítők (a Servo most már működik), a HQVGA felbontás, az SD-kártya inicializálásának megbízhatósága, a tárhely újrainicializálása szoftveres újraindítás után, valamint a REPL újrafuttatása, ha nincs jelen szkript.
Hardver- és kártyatámogatás¶
OV7725 kameraérzékelő.
LCD shield (
lcdmodul),mlxhőkamera és ATWINC1500 WiFi-alapok.
Törést okozó API-változások¶
A felhasználó számára látható API-törések a v1.1.0 és a v1.2.0 között. Hatókör: Python C-modulok a modules/ mappában és Python könyvtárak a scripts/libraries/ mappában.
Mindhárom törést okozó változás a központi sensor függvények viselkedésbeli változása (azonos API, eltérő viselkedés) — ellenőrizd újra az érintett szkripteket. Minden commit-hash a GitHubon lévő diffjére hivatkozik. (A kiadás túlnyomó része új API, amelyet a v1.1→v1.2 tartományon belül építettek ki, ezért bővítő jellegű, nem törést okozó.)
Az sensor.reset() már nem alkalmaz alapértelmezett konfigurációt (viselkedés)¶
Az sensor.reset() már nem alkalmaz beépített alapértelmezett konfigurációt (pixformat / framesize / framerate / gain / contrast / brightness / saturation). Azoknak a szkripteknek, amelyek arra támaszkodtak, hogy a reset() használható alapértelmezést hagy maga után, mostantól kifejezetten meg kell hívniuk az sensor.set_pixformat() és az sensor.set_framesize() (valamint bármely egyéb beállítást) függvényt a reset() után.
Commitok: d1e782df3
Az sensor.snapshot() kivételt dob időtúllépéskor (viselkedés)¶
Az sensor.snapshot() mostantól RuntimeError("Sensor Timeout!!") kivételt dob, amikor az érzékelő időtúllépést jelez, ahelyett, hogy határozatlan ideig várakozna. Csomagold a snapshot() hívást try / except RuntimeError blokkba, ha tolerálnod kell az időtúllépéseket.
Commitok: e3f41d674
Az sensor.set_pixformat() kivételt dob nem támogatott formátum esetén (viselkedés)¶
Az sensor.set_pixformat() mostantól kivételt dob, ha nem támogatott pixelformátumot kap, ahelyett, hogy False értéket adna vissza. Annak a kódnak, amely a False visszatérési értéket ellenőrizte, mostantól a kivételt kell elkapnia.
Commitok: e0c5822c2
Migrációs ellenőrzőlista¶
A v1.2.0-ra való tiszta átálláshoz a szokásos teendők:
Állítsd be kifejezetten az
sensor.set_pixformat()/sensor.set_framesize()függvényt azsensor.reset()után (a reset változás).Csomagold az
sensor.snapshot()hívásttry/except RuntimeErrorblokkba, ha tolerálnod kell az érzékelő időtúllépéseit (a snapshot változás).Kapd el az
sensor.set_pixformat()kivételét aFalseellenőrzése helyett (a set_pixformat változás).
Minden más szkript változatlanul fut.