v2.5.0

v2.5.0 este o lansare de imagistică bogată în funcții: adaugă find_rects(), find_circles(), get_regression() (potrivire de linii/regresie), find_number() (cifre LeNet), clasele de flux ImageWriter / ImageReader, sensor.flush() / width() / height() și suport pyb.RTC. Încărcarea imaginilor este acum susținută de tamponul de cadre — citiți modificările incompatibile de mai jos.

Aspecte importante

  • image.find_rects() — detector de dreptunghiuri / patrulatere cu ieșire pentru colțuri.

  • image.find_circles() — detectarea cercurilor prin transformata Hough.

  • image.get_regression() — potrivire de linii prin cele mai mici pătrate și robustă (Theil-Sen).

  • image.find_number() — recunoașterea cifrelor LeNet.

  • ImageWriter / ImageReader — înregistrarea și redarea fluxurilor de imagini.

  • Suport pyb.RTC, plus sensor.flush() / sensor.width() / sensor.height().

  • Incompatibil: încărcarea imaginilor este acum susținută de tamponul de cadre și generează o eroare dacă imaginea este prea mare — consultați modificările incompatibile.

Funcții noi

  • Detectarea caracteristicilor — adăugate image.find_rects() (detector de patrulatere AprilTag; obiecte rect cu x / y / w / h / corners / magnitude), image.find_circles() (Hough), image.get_regression() (potrivire de linii prin cele mai mici pătrate + robustă Theil-Sen) și image.find_number() (recunoașterea cifrelor LeNet), fiecare cu scripturi exemplu.

  • Colțurile rezultatelor — adăugat un atribut corners la obiectele rezultat pentru coduri QR / AprilTag / matrice de date / coduri de bare.

  • Fluxuri de imagini — adăugate clasele image.ImageWriter / image.ImageReader (format de blocuri aliniate la 16 octeți) cu exemplele image_writer.py / image_reader.py.

  • Senzor — adăugate sensor.flush() (împinge tamponul de cadre către IDE fără un instantaneu) și sensor.width() / sensor.height().

  • pyb.RTC — activat suportul RTC cu un exemplu rtc.py.

  • Adăugate o cascadă Haar pentru fețe de pisică și un exemplu Servo-Shield (PCA9685); unealta gazdă openmv-cascade.py a primit suport pentru noul format de cascadă XML OpenCV.

Alte modificări și îmbunătățiri

  • Tamponul de cadre a fost refactorizat astfel încât metodele de imagine copy_to_fb actualizează previzualizarea din IDE; căile HaarCascade() nu mai necesită un / inițial (încorporat vs. fișier este detectat automat); înregistrarea GIF/MJPEG suportă acum VGA (și GIF-uri BAYER); fișierul încorporat README.txt a fost actualizat, iar fișierul driver openmv.inf nu mai este creat pe un sistem de fișiere nou.

Corecții de erori

Imagistică:

  • Corectate acumularea voturilor din find_circles(), offsetul rho din get_regression() cu un ROI și o scurgere de memorie, îmbinarea segmentelor din find_lines(), medierea unghiurilor din find_blobs() și limitele de culoare implicite (cele mai puțin restrictive), stabilitatea sortării punctelor-cheie ORB / ordonarea descriptorilor și flag-ul de potrivire, precum și încărcarea cu tamponare a cascadei Haar (citiri nealiniate).

Sistem:

  • Activat pyb Servo 3 (P9) (#256), corectată inițializarea RTC, mărit timeout-ul caracterelor UART (#240) și corectat flag-ul „enabled” neinițializat al tamponului de cadre al senzorului.

Suport hardware și pentru plăci

  • Suport pyb.RTC și pyb Servo 3 (P9); exemplu Servo-Shield (PCA9685).

Modificări incompatibile de API

Modificări incompatibile de API vizibile pentru utilizator între v2.4.1 și v2.5.0. Domeniu: modulele C Python din modules/ și bibliotecile Python din scripts/libraries/.

Modificarea incompatibilă este o modificare de comportament (același API, rezultat diferit) — reverificați scripturile afectate. Fiecare hash de commit duce la diff-ul său pe GitHub.

Încărcarea imaginilor este susținută de tamponul de cadre (comportament)

image.Image / încărcarea imaginilor copiază acum imaginea încărcată în tamponul de cadre principal și generează o excepție dacă imaginea este prea mare pentru a încăpea. Încărcările care reușeau anterior într-un tampon din heap pot eșua acum — asigurați-vă că imaginile încărcate încap în tamponul de cadre (sau gestionați noua eroare).

Commit-uri: 87d53385a

Lista de verificare pentru migrare

Asigurați-vă că imaginile încărcate încap în tamponul de cadre (sau prindeți noua eroare „image too large”) acolo unde vă bazați anterior pe încărcări de imagini susținute de heap (modificarea încărcării imaginilor). Toate celelalte scripturi rulează nemodificate.