v2.5.0¶
v2.5.0 est une version d’imagerie riche en fonctionnalités : elle ajoute find_rects(), find_circles(), get_regression() (ajustement de ligne/régression), find_number() (chiffres LeNet), les classes de flux ImageWriter / ImageReader, sensor.flush() / width() / height() et la prise en charge de pyb.RTC. Le chargement d’images s’appuie désormais sur le tampon d’image — consultez les modifications incompatibles ci-dessous.
Points forts¶
image.find_rects()— détecteur de rectangles / quadrilatères avec sortie des coins.image.find_circles()— détection de cercles par transformée de Hough.image.get_regression()— ajustement de ligne par moindres carrés et robuste (Theil-Sen).image.find_number()— reconnaissance de chiffres LeNet.ImageWriter/ImageReader— enregistrement et relecture de flux d’images.Prise en charge de
pyb.RTC, ainsi quesensor.flush()/sensor.width()/sensor.height().Incompatible : le chargement d’images s’appuie désormais sur le tampon d’image et lève une exception si l’image est trop volumineuse — consultez les modifications incompatibles.
Nouvelles fonctionnalités¶
Détection de caractéristiques — ajout de
image.find_rects()(détecteur de quadrilatères AprilTag ; objets rect avecx/y/w/h/corners/magnitude),image.find_circles()(Hough),image.get_regression()(ajustement de ligne par moindres carrés + robuste Theil-Sen) etimage.find_number()(reconnaissance de chiffres LeNet), chacun accompagné de scripts d’exemple.Coins des résultats — ajout d’un attribut
cornersaux objets résultat de QR code / AprilTag / matrice de données / code-barres.Flux d’images — ajout des classes
image.ImageWriter/image.ImageReader(format de fragments alignés sur 16 octets) avec les exemplesimage_writer.py/image_reader.py.Capteur — ajout de
sensor.flush()(pousse le tampon d’image vers l’IDE sans capture) et desensor.width()/sensor.height().pyb.RTC— activation de la prise en charge du RTC avec un exemplertc.py.Ajout d’une cascade de Haar pour visage de chat et d’un exemple Servo-Shield (PCA9685) ; l’outil hôte
openmv-cascade.pya reçu la prise en charge du nouveau format de cascade XML OpenCV.
Autres changements et améliorations¶
Le tampon d’image a été refactorisé de sorte que les méthodes d’image
copy_to_fbmettent à jour l’aperçu de l’IDE ; les chemins deHaarCascade()ne nécessitent plus de/initial (intégré ou fichier détecté automatiquement) ; l’enregistrement GIF/MJPEG prend désormais en charge le VGA (et les GIF BAYER) ; le fichierREADME.txtintégré a été mis à jour et le fichier de piloteopenmv.infn’est plus créé sur un système de fichiers neuf.
Corrections de bogues¶
Imagerie :
Correction de l’accumulation de votes de
find_circles(), du décalage rho deget_regression()avec une ROI et d’une fuite de mémoire, de la fusion de segments defind_lines(), du moyennage d’angles defind_blobs()et de ses bornes de couleur par défaut (les moins restrictives), de la stabilité du tri des points clés ORB / de l’ordonnancement des descripteurs et du drapeau de correspondance, ainsi que du chargement bufferisé de la cascade de Haar (lectures non alignées).
Système :
Activation du Servo 3 (P9) de
pyb(#256), correction de l’init du RTC, augmentation du délai d’expiration des caractères UART (#240) et correction du drapeau « enabled » non initialisé du tampon d’image du capteur.
Prise en charge du matériel et des cartes¶
Modifications incompatibles de l’API¶
Ruptures d’API visibles par l’utilisateur entre la v2.4.1 et la v2.5.0. Portée : modules C Python dans modules/ et bibliothèques Python dans scripts/libraries/.
La modification incompatible est une modification de comportement (même API, résultat différent) — revérifiez les scripts concernés. Chaque empreinte de commit renvoie à son diff sur GitHub.
Le chargement d’images s’appuie sur le tampon d’image (comportement)¶
image.Image / le chargement d’images copie désormais l’image chargée dans le tampon d’image principal et lève une exception si l’image est trop volumineuse pour y tenir. Les chargements qui réussissaient auparavant dans un tampon du tas peuvent désormais échouer — assurez-vous que les images chargées tiennent dans le tampon d’image (ou gérez la nouvelle erreur).
Commits : 87d53385a
Liste de contrôle de migration¶
Assurez-vous que les images chargées tiennent dans le tampon d’image (ou interceptez la nouvelle erreur « image trop volumineuse ») là où vous vous appuyiez auparavant sur des chargements d’images dans le tas (la modification du chargement d’images). Tous les autres scripts fonctionnent sans changement.