Version 0.11#
DataLab Version 0.11.0 (23/01/2024)#
💥 Nouvelles fonctionnalités :
Les signaux et les images peuvent maintenant être réorganisés dans la vue arborescente :
En utilisant les nouvelles actions « Monter » et « Descendre » dans le menu « Édition » (ou en utilisant les boutons de la barre d’outils correspondants) :
Ceci corrige l”Issue #22 - Ajout des actions « monter/descendre » dans le menu « Édition », pour les signaux/images et les groupes
Les signaux et les images peuvent également être réorganisés par glisser-déposer :
Les signaux et les images peuvent être déplacés et déposés dans leur propre panneau pour changer leur ordre
Les groupes peuvent également être déplacés et déposés dans leur panneau
La fonctionnalité prend également en charge la sélection multiple (en utilisant les modificateurs standard Ctrl et Shift), de sorte que plusieurs signaux/images/groupes peuvent être déplacés à la fois, pas nécessairement avec des positions contiguës
Ceci corrige l”Issue #17 - Ajout de la fonctionnalité de glisser-déposer aux vues arborescentes des signaux/images
Nouvelles fonctionnalités d’interpolation 1D :
Ajout de la fonctionnalité « Interpolation » au menu « Traitement » du panneau de signal
Méthodes disponibles : linéaire, spline, quadratique, cubique, barycentrique et PCHIP
Merci à @marcel-goldschen-ohm pour sa contribution à l’interpolation spline
Ceci corrige l”Issue #20 - Ajout des fonctionnalités d’interpolation 1D
Nouvelle fonctionnalité de rééchantillonnage 1D :
Ajout de la fonctionnalité « Rééchantillonnage » au menu « Traitement » du panneau de signal
Mêmes méthodes d’interpolation que pour la fonctionnalité « Interpolation »
Possibilité de spécifier le pas de rééchantillonnage ou le nombre de points
Ceci corrige l”Issue #21 - Ajout de la fonctionnalité de rééchantillonnage 1D
Nouvelle fonctionnalité de convolution 1D :
Ajout de la fonctionnalité « Convolution » au menu « Opération » du panneau de signal
Ceci corrige l”Issue #23 - Ajout de la fonctionnalité de convolution 1D
Nouvelle fonctionnalité de d’élimination de tendance 1D :
Ajout de la fonctionnalité « Élimination de tendance » au menu « Traitement » du panneau de signal
Méthodes disponibles : linéaire ou constante
Ceci corrige l”Issue #24 - Ajout de la fonctionnalité d’élimination de tendance 1D
Résultats d’analyse 2D :
Avant cette version, les résultats d’analyse 2D tels que les contours, les blobs, etc. étaient stockés dans le dictionnaire de métadonnées de l’image sous forme de coordonnées (x0, y0, x1, y1, …) même pour les cercles et les ellipses (c’est-à-dire les coordonnées des rectangles englobants).
Par souci de commodité, les coordonnées du cercle et de l’ellipse sont désormais stockées dans le dictionnaire de métadonnées de l’image sous la forme (x0, y0, rayon) et (x0, y0, a, b, theta) respectivement.
Ces résultats sont également affichés comme tels dans la boîte de dialogue « Résultats » (à la fin du processus de calcul ou en cliquant sur le bouton « Afficher les résultats »).
Cette correction corrige l”Issue #32 - Détection des contours : afficher le cercle
(x, y, r)et l’ellipse(x, y, a, b, theta)au lieu de(x0, y0, x1, x1, ...)
Résultats d’analyse 1D et 2D :
En complément de l’amélioration précédente, plus de résultats d’analyse sont désormais affichés dans la boîte de dialogue « Résultats »
Cela concerne à la fois les résultats d’analyse 1D (FHWM…) et 2D (contours, blobs…) :
Les résultats de type segment affichent désormais également la longueur (L) et les coordonnées du centre (Xc, Yc)
Les résultats de type cercle et ellipse affichent désormais également l’aire (A)
Ajout de l’entrée « Tracer les résultats » dans le menu Analyse » :
Cette fonctionnalité permet de tracer les résultats d’analyse (1D ou 2D)
Cela crée un nouveau signal avec des axes X et Y correspondant à des paramètres définis par l’utilisateur (par exemple X = index et Y = rayon pour les résultats de cercle)
Augmentation de la largeur par défaut de la boîte de dialogue de sélection d’objet :
La boîte de dialogue de sélection d’objet est désormais plus large par défaut, de sorte que les titres complets des signaux/images/groupes soient plus facilement lisibles
Fonctionnalité de suppression de métadonnées :
Avant cette version, la fonctionnalité supprimait toutes les métadonnées, y compris les métadonnées des régions d’intérêt (ROI), le cas échéant.
A présent, une boîte de dialogue de confirmation est affichée à l’utilisateur avant de supprimer toutes les métadonnées si le signal/l’image a des métadonnées ROI : cela permet de conserver les métadonnées ROI si nécessaire.
Extraction de profil d’image : ajout de la prise en charge des images masquées (lors de la définition des régions d’intérêt, les zones en dehors des ROI sont masquées, et le profil est extrait uniquement sur les zones non masquées, ou moyenné sur les zones non masquées dans le cas de l’extraction du profil moyen)
Style de courbe : ajout de « Réinitialiser les styles de courbe » dans le menu « Affichage ». Cette fonctionnalité permet de réinitialiser le cycle de style de courbe à son état initial.
Classe de base des plugins
PluginBase:Ajout de la méthode
edit_new_signal_parameterspour afficher une boîte de dialogue pour éditer les paramètres d’un nouveau signalAjout de la méthode
edit_new_image_parameterspour afficher une boîte de dialogue pour éditer les paramètres d’une nouvelle image (mise à jour du plugin datalab_testdata.py en conséquence)
API de calculs sur les signaux et les images (
datalab.computations) :Ajout de wrappers pour les calculs 1 -> 1 sur les signaux et les images
Ces wrappers visent à simplifier la création d’une fonction de calcul de base opérant sur les objets natifs de DataLab (
SignalObjetImageObj) à partir d’une fonction opérant sur des tableaux NumPyCela simplifie les fonctionnalités internes de DataLab et facilite la création de nouvelles fonctionnalités de calcul dans les plugins
Voir le plugin d’exemple datalab_custom_func.py pour un cas d’utilisation pratique
Ajout de la fonctionnalité « Extraction du profil radial » au menu « Opération » du panneau d’image :
Cette fonctionnalité permet d’extraire un profil moyenné radialement à partir d’une image
Le profil est extrait autour d’un centre défini par l’utilisateur (x0, y0)
Le centre peut également être calculé (centre de gravité ou centre de l’image)
Suite de tests automatisés :
Depuis la version 0.10, l’objet proxy de DataLab dispose d’une méthode
toggle_auto_refreshpour activer/désactiver la fonctionnalité « Auto-refresh ». Cette fonctionnalité peut être utile pour améliorer les performances lors de l’exécution de scripts de testLes scénarios de test sur les signaux et les images utilisent désormais cette fonctionnalité pour améliorer les performances
Métadonnées des signaux et des images :
Ajout de l’entrée « source » dans le dictionnaire de métadonnées, pour stocker le chemin du fichier source lors de l’importation d’un signal ou d’une image à partir d’un fichier
Ce champ est conservé lors du traitement du signal/image, afin de garder une trace du chemin du fichier source
📚 Documentation :
Nouvelle section Tutoriels dans la documentation :
Cette section fournit un ensemble de tutoriels pour apprendre à utiliser DataLab
Les tutoriels vidéo suivants sont disponibles :
Démo rapide
Ajout de vos propres fonctionnalités
Les tutoriels textuels suivants sont disponibles :
Traitement d’un spectre
Détection de taches sur une image
Mesure de franges Fabry-Perot
Prototypage d’un pipeline de traitement personnalisé
Nouvelle section API dans la documentation :
Cette section explique comment utiliser DataLab comme une bibliothèque Python, en abordant les sujets suivants :
Comment utiliser les algorithmes DataLab sur les tableaux NumPy
Comment utiliser les fonctionnalités de calcul de DataLab sur les objets DataLab (signaux et images)
Comment utiliser les fonctionnalités d’entrée/sortie de DataLab
Comment utiliser les objets proxy pour contrôler DataLab à distance
Cette section fournit également une référence complète de l’API pour les objets et les fonctionnalités de DataLab
Ceci corrige l”Issue #19 - Ajout de la documentation de l’API (modèle de données, fonctions sur les tableaux ou les objets de signaux/images, …)
🛠️ Correctifs :
Ceci corrige l”Issue #29 - Erreur d’ajustement polynomial :
QDialog [...] argument 1 has an unexpected type 'SignalProcessor'Fonctionnalité d’extraction de ROI d’image :
Avant cette version, lors de l’extraction d’une seule ROI circulaire d’une image avec l’option « Extraire toutes les ROI dans un seul objet d’image » activée, le résultat était une seule image sans le masque de ROI (le masque de ROI n’était disponible que lors de l’extraction de ROI avec l’option désactivée)
Cela conduisait à un comportement inattendu, car on pouvait interpréter le résultat (une image carrée sans le masque de ROI) comme le résultat d’une seule ROI rectangulaire
A présent, lors de l’extraction d’une seule ROI circulaire d’une image avec l’option « Extraire toutes les ROI dans un seul objet d’image » activée, le résultat est une seule image avec le masque de ROI (comme si l’option était désactivée)
Ceci corrige l”Issue #31 - Extraction d’une seule ROI circulaire : bascule automatique vers la fonction
compute_extract_roi
Analyse sur ROI circulaire :
Avant cette version, lors de l’exécution de calculs sur une ROI circulaire, les résultats étaient inattendus en termes de coordonnées (les résultats semblaient être calculés dans une région située au-dessus de la ROI réelle).
Cela était dû à une régression introduite dans une version antérieure.
A présent, lors de la définition d’une ROI circulaire et de l’exécution de calculs sur celle-ci, les résultats sont calculés sur la ROI réelle
Ceci corrige l”Issue #33 - Analyse sur ROI circulaire : résultats inattendus
Détection des contours sur ROI :
Avant cette version, lors de l’exécution de la détection des contours sur une ROI, certains contours étaient détectés en dehors de la ROI (cela peut être dû à une limitation de la fonction
find_contoursde scikit-image).A présent, grâce à une solution de contournement, les contours erronés sont filtrés.
Un nouveau module de test
datalab.tests.features.images.contour_fabryperot_appa été ajouté pour tester la fonctionnalité de détection des contours sur une image Fabry-Perot (merci à @emarin2642 pour sa contribution)Ceci corrige l”Issue #34 - Détection des contours : résultats inattendus en dehors de la ROI
Fusion des résultats d’analyse :
Avant cette version, lors d’un calcul
1->N(somme, moyenne, produit) sur un groupe de signaux/images, les résultats d’analyse associés à chaque signal/image étaient fusionnés en un seul résultat, mais seul le type de résultat présent dans le premier signal/image était conservé.A présent, les résultats d’analyse associés à chaque signal/image sont fusionnés en un seul résultat, quel que soit le type de résultat.
Ceci corrige l”Issue #36 - L’état d’activation de l’action « Tout supprimer » n’est parfois pas rafraîchi
Inversion X/Y de l’image : lors de l’inversion des axes X et Y, les régions d’intérêt (ROI) n’étaient ni supprimées ni inversées (les ROI sont désormais supprimées, jusqu’à ce que nous implémentions la fonction d’inversion, si demandé)
Groupe « Propriétés » : le bouton « Appliquer » était activé par défaut, même lorsqu’aucune propriété n’avait été modifiée, ce qui était déroutant pour l’utilisateur (le bouton « Appliquer » est désormais désactivé par défaut, et n’est activé que lorsqu’une propriété est modifiée)
Correction de la méthode
get_objectdu proxy lorsqu’il n’y a pas d’objet à retourner (Noneest retourné au lieu d’une exception)Correction de
IndexError: list index out of rangelors de certaines opérations ou calculs sur des groupes de signaux/images (par exemple « Extraction de ROI », « Détection de pics », « Redimensionnement », etc.)Glisser-déposer depuis un gestionnaire de fichiers : les noms de fichiers sont désormais triés par ordre alphabétique