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