v2.6.0

v2.6.0 met à jour le cœur vers MicroPython 1.9.2, fait passer find_line_segments() à l’algorithme LSD, ajoute la prise en charge du capteur MT9V034 à obturateur global, la correction de perspective image.rotation_corr(), sensor.sleep(), l’enregistrement d’images brutes et les bases de la carte OpenMV 4. find_line_segments(), plusieurs tailles de trame et le comportement de MicroPython ont changé — consultez les changements incompatibles ci-dessous.

Points forts

  • Mise à jour du cœur vers MicroPython 1.9.2.

  • Segments de ligne LSDfind_line_segments() utilise désormais l’algorithme Line Segment Detector.

  • Prise en charge du capteur à obturateur global MT9V034.

  • image.rotation_corr() — correction de rotation de perspective X/Y/Z.

  • Mode veille logicielle sensor.sleep() et enregistrement d’images brutes (non compressées).

  • Incompatible : les paramètres de find_line_segments(), plusieurs constantes de taille de trame et le comportement de MicroPython ont changé — voir les changements incompatibles.

Nouvelles fonctionnalités

  • image.rotation_corr() — ajout de la correction de rotation de perspective X/Y/Z avec un exemple rotation_correction.py.

  • sensor.sleep(enable) — met la caméra dans un mode de veille logicielle (avec un exemple de mode veille).

  • Images brutesimage.save() peut désormais écrire des images brutes (non compressées).

  • MT9V034 — ajout de la prise en charge du capteur à obturateur global, exposant la constante sensor.MT9V034.

  • Ajout d’un exemple lens_correction.py pour image.lens_corr() et des fichiers de prise en charge de la carte OpenMV 4 (configuration de carte / programme d’amorçage / bases de l’éditeur de liens).

Autres changements et améliorations

  • Mise à jour du MicroPython intégré vers 1.9.2 (plomberie du portage 1.9, oofatfs) ; réécriture de find_line_segments.py pour la nouvelle API LSD (correction d’objectif désactivée par défaut) ; mise à jour de l’API côté hôte openmv (init(portname) / exec_script / stop_script) ; réduction de l’horloge du capteur de l’OpenMV Cam M4 (FPS maximum plus faible sur le M4) ; le bouton Stop de l’IDE utilise désormais une exception forcée pour interrompre les scripts de manière plus fiable.

Corrections de bogues

  • Correction de image.lens_corr() qui laissait des pixels obsolètes (le tampon de destination est désormais effacé avant le remappage), de blob.density() qui utilisait une division entière (renvoyait toujours 0, #268), du mappage des broches UART de l’OpenMV 2 (M4), et mise à jour de qrcodes_with_lens_corr.py pour utiliser QVGA.

Matériel et prise en charge des cartes

  • Capteur à obturateur global MT9V034.

  • OpenMV 4 — fichiers de prise en charge de la carte (bases).

  • OpenMV 2 (M4) — correction du mappage des broches UART.

Changements d’API incompatibles

Ruptures d’API visibles par l’utilisateur entre v2.5.0 et v2.6.0. Portée : modules C Python dans modules/ et bibliothèques Python dans scripts/libraries/.

Chaque changement est étiqueté selon son impact :

  • majeur — affecte la plupart des scripts qui utilisaient la fonctionnalité ; vous devrez porter votre code.

  • mineur — API restreinte ; n’affecte que les scripts qui l’utilisaient.

  • comportement — même API, résultats différents ; revérifiez les scripts ajustés.

Les changements sont regroupés par impact dans cet ordre. Si vous voulez simplement porter votre code, passez à la liste de contrôle de migration à la fin. Chaque hachage de commit renvoie à son diff sur GitHub.

find_line_segments() passe à LSD (majeur)

image.find_line_segments() a été réécrit pour utiliser l’algorithme Line Segment Detector (LSD). Les anciens paramètres threshold / theta_margin / rho_margin / segment_threshold / x_stride / y_stride ont été remplacés par merge_distance et max_theta_diff (par ex. find_line_segments(merge_distance=0, max_theta_diff=15)). Il n’est également plus disponible sur les cartes de classe M4 (OpenMV 2).

Commits : 5a3153c8b, cbe2a4aeb

Constantes de taille de trame invalides supprimées (mineur)

Les constantes de taille de trame invalides sensor.QQQQCIF / QQQCIF / QQQQSIF / QQQSIF / HQQQQVGA / HVGA ont été supprimées (#261). Les scripts qui les utilisent doivent passer à une résolution prise en charge.

Commits : 35ab0a26f

find_qrcodes() supprimé sur l’OpenMV Cam M4 (mineur)

image.find_qrcodes() n’est plus compilé sur les cartes de classe M4 (OpenMV 2). Utilisez une carte OpenMV 3 (M7) ou une autre fonctionnalité logicielle pour la détection de QR sur le matériel M4. Les autres cartes ne sont pas affectées.

Commits : 7dff089e6

MicroPython mis à jour vers 1.9.2 (comportement)

Le cœur MicroPython intégré a été mis à jour vers 1.9.2. Le comportement de la bibliothèque standard et du langage suit le MicroPython 1.9.2 en amont — revérifiez les scripts qui dépendent d’un comportement spécifique à une version. Notamment, un découpage d’image avec un pas différent de 1 lève désormais OSError au lieu de NotImplementedError.

Commits : 11bed4b99

Liste de contrôle de migration

Pour un portage propre vers v2.6.0, le travail habituel est le suivant :

  1. Réécrire les appels à find_line_segments() pour les paramètres LSD (merge_distance / max_theta_diff) et déplacer ce traitement hors du M4 (la refonte LSD).

  2. Remplacer les constantes de taille de trame supprimées par une résolution prise en charge (la suppression de tailles de trame).

  3. Déplacer la détection de QR-code du M4 vers une carte M7 (le changement de find_qrcodes).

  4. Revalider le comportement spécifique à une version par rapport à MicroPython 1.9.2 (la mise à niveau de MicroPython).

Tous les autres scripts fonctionnent sans modification.