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_parameters pour afficher une boîte de dialogue pour éditer les paramètres d’un nouveau signal

    • Ajout de la méthode edit_new_image_parameters pour 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 (SignalObj et ImageObj) à partir d’une fonction opérant sur des tableaux NumPy

    • Cela 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_refresh pour 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 test

    • Les 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_contours de 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_app a é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_object du proxy lorsqu’il n’y a pas d’objet à retourner (None est retourné au lieu d’une exception)

  • Correction de IndexError: list index out of range lors 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