Plugin de prétraitement de tomographie par projection optique pour Napari
Ce plugin Napari a été généré avec Cookiecutter en utilisant le modèle cookiecutter-napari-plugin de @napari.
Aller à :
Usage
Regroupement
Retour sur investissement
-Enregistrer
Fond sombre et champ clair
Correction des mauvais pixels
Correction d'intensité
Blanchiment fluorescent
Point de départ
Paramètres globaux
Transmission vs émission
Corrections
Autre
Installation
Installation de dépannage
Contribuer
Licence
Problèmes
Remerciements
Entrée de données diffusée à partir du widget ImSwitch OPT (pour plus de détails, voir la documentation ImSwitch)
Projections tomographiques chargées sous forme de pile de données
Autres formats de données de volume 3D de pile
Petit exemple de données chargées via File -> Open Sample
Deux paramètres globaux importants sont disponibles : Opérations sur place et Suivi .
Pour économiser de la mémoire, le mode par défaut effectue des opérations sur la pile d'images Inplace , réécrivant la pile d'images d'origine. Si cette option n'est pas sélectionnée, un nouveau calque avec la version modifiée de l'image sera créé et ajouté à la visionneuse. Lorsque les opérations sur place sont sélectionnées, l'option Suivi devient disponible dans le widget. Cette option permet de suivre la dernière opération effectuée sur la pile/image. En appuyant sur le bouton Undo
, la dernière opération effectuée sur l'image est annulée. Une seule annulation est possible.
Actuellement, les images sont conservées ou converties en numpy.int16
après les opérations, à l'exception du calcul -log
. Nous vous recommandons fortement d'effectuer l'opération de haut en bas et de gauche à droite, telles qu'elles apparaissent dans le widget, sinon il y a de fortes chances de rencontrer des exceptions ou un comportement imprévisible. Veuillez signaler un problème si une partie de la logique des widgets doit être corrigée pour vos pipelines.
Les expériences de transmission sont envisagées comme étant quantitatives dans l'approximation de la loi de Beer-Lambert, cela signifie qu'en utilisant la mesure de la lumière et de l'obscurité, on peut calculer l' absorbance , ou plutôt la transmission comme
, où I est le signal mesuré, est l'intensité du champ clair et sont les comptes sombres.
L'émission est généralement loin d'être quantitative, en raison de la concentration de coloration inconnue, des effets de trempe, du blanchiment, de l'étalonnage du chemin de détection, des rendements quantiques, pour n'en nommer que quelques-uns.
Les corrections de fond noir, de champ clair et de mauvais pixels sont directement liées à l'acquisition de la caméra. La correction d'intensité traite en revanche de l'instabilité de la source lumineuse. L'image corrigée est affichée dans la visionneuse en utilisant les limites de contraste de l'image d'origine. Vous devrez peut-être ajuster les limites de contraste pour voir efficacement le résultat de la correction effectuée.
Des combinaisons de corrections de champ sombre et de champ clair sont possibles pour les expériences de transmission et d'émission. L'utilisateur doit sélectionner la modalité d'expérimentation, puis décider s'il souhaite inclure une seule correction (fond noir ou champ clair) ou les deux. Une fois la correction terminée, en fonction du paramètre Inplace , soit un nouveau calque avec l'image corrigée apparaîtra dans la visionneuse, soit le calque d'image d'origine sera mis à jour. La correction du champ noir effectue à elle seule la soustraction de l'image sombre (opération int
) de chaque image de la pile d'images, cela vaut toujours la peine de l'appliquer. Ce fonctionnement est le même quelle que soit la modalité expérimentale de Transmission ou d’Émission .
La correction du fond clair est particulièrement utile pour les expériences de transmission, afin de corriger l'intensité variable du fond clair des images. La couche lumineuse peut également être utilisée pour identifier les pixels morts. Si elles sont appliquées seules, les images sont divisées par intensité lumineuse (division float
), puis converties en numpy.int16
pour le cas de l'expérience de transmission . Pour les données d'émission , l'intensité du champ clair est soustraite de chaque image de la pile (opération int
).
La correction des champs sombres et clairs effectuée ensemble est calculée pour la transmission
(image - dark) / (bright - dark)
, qui est une opération float
, convertie ensuite en numpy.int16
.
Pour les données d'émission , la correction combinée sombre et claire appliquée à l'expérience d'émission est simplement
(image - dark) - (bright - dark) = image - bright
Voir la section ci-dessus pour des explications supplémentaires sur la différence entre la transmission et l'émission.
La correction des pixels est disponible pour les pixels chauds et les pixels morts. Une fois le bouton Bad pixel correction
enfoncé, les pixels défectueux sont identifiés et l'utilisateur peut choisir de les corriger ou de les visualiser comme un nouveau calque dans la visionneuse.
La correction est effectuée en considérant les valeurs des pixels voisins. Deux options sont disponibles pour la correction : n4 et n8. L'option n4 utilise les 4 pixels voisins (haut, bas, gauche et droite), tandis que l'option n8 considère les 8 pixels voisins. Si un pixel voisin est lui-même un pixel défectueux, il n’est pas pris en compte pour la correction. La mauvaise valeur de pixel est calculée comme mean
des valeurs de pixels voisins.
Une fois les corrections de fond noir, de fond clair et de mauvais pixels appliquées, il est possible d'appliquer une correction d'intensité pour corriger les inhomogénéités lumineuses le long de la pile générées par l'instabilité de la source d'éclairage. L'utilisateur choisit la taille du rectangle et appuie sur le bouton Intensity correction
. La moyenne des pixels dans les quatre coins de l'image (avec un côté égal à la taille du rectangle) sera calculée sur la pile et une image corrigée apparaîtra dans la visionneuse (si l'option Opérations sur place n'est pas sélectionnée) ou l'image originale sera être mis à jour. De plus, un tracé montrant les intensités sur la pile (intensité mean
sur les 4 zones rectangulaires de l'image) avant et après la correction d'intensité sera affiché.
Si vous souhaitez corriger le photoblanchiment par fluorescence, consultez la section suivante.
Pour chaque angle, les valeurs d'intensité moyennes le long des colonnes sont calculées puis utilisées comme facteurs de correction pour diviser les valeurs d'intensité de chaque ligne par rapport à la première projection. Une fois la correction effectuée, un tracé montrant les valeurs moyennes calculées pour chaque angle apparaît dans la visionneuse. Cette fonctionnalité suppose que la pile est sous la forme (angles, rows, columns)
.
Notez que cette correction ne prend pas en compte les effets d'ombre qui sont apparents dans les sinogrammes ci-dessus, pris à partir d'une seule rangée de caméras. La lumière d'excitation de fluorescence vient de la droite dans ce cas, donc le côté droit des sinogames montre une intensité FL plus élevée.
Le regroupement de la pile est possible. Choisissez le facteur de regroupement et appuyez sur le bouton Bin Stack
. La pile regroupée sera affichée et une notification avec les formes de pile originales et nouvelles apparaîtra. La forme est (height // bin_factor, width // bin _factor)
, donc les pixels de bord peuvent manquer si les dimensions de votre image ne sont pas envisageables par bin_factor
. Les valeurs de pixels sont calculées comme la mean
des pixels regroupés et converties en numpy.int16
. Un facteur de regroupement de 1 n’entraîne aucune action.
Pour la reconstruction tomographique, la sélection de la ROI peut réduire considérablement le temps de calcul de l'algorithme de reconstruction. Sélectionnez un Points layer
et ajoutez un point qui définit le coin supérieur gauche de la ROI. À partir de ce point, width
et height
en pixels sont sélectionnées par l'utilisateur. Si plusieurs points sont ajoutés, seul le dernier point sera pris en compte pour la sélection du retour sur investissement.
Il est possible de calculer le logarithme de l'image à l'aide de la fonction -Log du widget rendant plus visibles les détails dans les zones sombres et claires. Il s'agit d'une transformation physiquement justifiée dans les expériences de transmission, car elle convertit les comptes en transmission . Pour les mesures d'émission , il s'agit simplement d'une transformation visant à augmenter le contraste de manière non linéaire pour la visualisation.
Vous pouvez installer napari-opt-handler
via pip :
pip install napari-opt-handler
Pour installer la dernière version de développement :
pip install git+https://github.com/QBioImaging/napari-opt-handler.git
Les contributions sont les bienvenues. Les tests peuvent être exécutés avec tox, veuillez vous assurer que la couverture reste au moins la même avant de soumettre une pull request.
Distribué selon les termes de la licence BSD-3, « napari-opt-handler » est un logiciel libre et open source
De nombreuses personnes ont contribué à ce projet. Les principaux sont :
Giorgia Tortora et Andrea Bassi (Politecnico Milan)
Teresa Correia (CCMAR-Algarve)
Si vous rencontrez des problèmes, veuillez déposer un problème accompagné d'une description détaillée.