Open LucasJacquier opened 2 years ago
J'ai testé la méthode de ML pour estimer le fond. L'image obtenue ressemble à celle obtenue par celle de la thèse de Nicolas. J'ai tenté d'éliminer le fond par une soustraction arithmétique du fond mais je suis pas convaincu par le résultat. Je vais essayer de trouver une seconde méthode.
En attendant, j'ai aussi commencé à mettre à jour le README.
utiliser la librairie opencv
Essayer avec différentes valeurs 7, 25, 50. Soustraire arithmétiquement les valeurs du fond devrait suffire. Trouver une fonction pour faire une convolution gaussienne.
mettre les images avec les trois critères de taille : image brute, fond, image nette.
si c'est facile à faire, essayer rolingball
tester aussi une méthode de convolution gaussienne (3ème méthode à part). pas faire de feat gaussien sur toute l'image, ca c'est inutile Il existe une fonction toute faite pour faire les convolutions. Tester les trois types de convolutions.
@deepcharles
J'ai commencé par me renseigner sur les convolutions et les filtres convolutifs. Ce site donne des infos pas mal : 'https://www.f-legrand.fr/scidoc/docmml/image/filtrage/convolution/convolution.html' Il explique ce qu'est le filtre par convolution et il donne une fonction pour les faire.
https://docs.opencv.org/4.x/d4/d13/tutorial_py_filtering.html Ce lien là donne différentes fonctions de filtrage par convolution. je vais utiliser ces fonctions je pense. Il suggère aussi la fonction de convolution par médiane qui peut être utilisée pour éliminer le bruit en poivre et sel.
Je viens de tester la fonction filter2D. Je suis pas sur de savoir précisément ce qu'elle fait, à vérifier. Je sais pas non plus le rôle du -1 : "kernel = np.ones((51,51),np.float32)/2601 dst = cv.filter2D(img_init['R'][1], -1,kernel)"
Mais la fonction donne des résultats intéressants. Pour un carré de taille 25, on voit toujours la forme des carrés, ce n'est pas uniforme. Mais pour des carrés de taille 51, ca donne un résultat qui a pas l'air trop mal.
Je vais essayer les autres fonctions, moyenne, médiane et gaussienne parce que celles là, on sait ce qu'elles font.
La fonction rolling ball fait des trucs bizarres. Je pense qu'il faudra éviter de l'utiliser. Cependant les images produites sont jolies. Mais j'ai l'impression qu'en plus elle modifie l'image d'origine par un effet de bord ou qqch du genre.
De plus, j'ai l'impression qu'avec les autres fonctions, même lorsqu'on enlève le fond, il reste beaucoup de bruit.
Mais en appliquant ces fonctions, on obtient vraiment un fond plus uniforme.
@deepcharles tu veux que je dépose toutes les images ( j'ai 3 techniques, 3 tailles de filtre donc 9 estimation du fond + 9 corrigées + 1 initiale) ?
Si c'est trop lourd, tu peux m'envoyer par mail, sinon ici c'est bien. Merci
Image initiale :
Estimation du fond : Taille du filtre : 7*7
51*51:
101*101:
Images après soustraction du fond: 7*7:
51*51:
101*101:
Estimation du fond: Taille du filtre : 7*7:
51*51:
101*101:
full image:
Images après soustraction du fond: 7*7:
51*51:
101*101:
full image:
Fonction intéressante, mais j'ai pas réussi à la faire tourner, un des paramètres bloquait
Estimation du fond: Taille du filtre : 7*7:
51*51:
101*101:
Images après soustraction du fond: 7*7:
51*51:
101*101:
@deepcharles Voilà toutes les images obtenues avec les différentes méthodes
Ok merci, le code associé est en ligne ? Notamment celui pour la convolution gaussienne.
image obtenue avec la librairie PIL.Image Auto-contraste avec ImageJ
Dans la thèse de Nicolas, il est proposé une méthode pour normaliser le fond. Deux méthodes sont proposées pour l'estimation du fond : le rolling-ball et la moyenne locale (après la moyenne sur un carré de 49 pixels, une convolution centrée sur ce pixel peut être réalisée). Il y a deux différences entre ces méthodes, le RB suit les minimums alors que le ML suit la moyenne du fond. L'autre différence est le traitement des maximums d'intensité. La ML dilue le maximum dans le fond, donc en retranchant le fond le voisinage des pics se retrouve avec une faible intensité, ce qui permet d'isoler les fluorophores.
La thèse s'intéresse plus spécifiquement à ML, je vais commencer par ça.