Bonjour à tous !
Je suis inscrit depuis quelques mois sur le site et le forum, et le parcourir m'a permis d'apprendre pas mal de choses notamment sur les filtres usuels pour la détection de contours (Cours de Xavier Philippeau).
Il s'agit de mon premier poste ici.
J'utilises Python 3.7 à l'aide du Navigateur Anaconda (Jupyter et Spyder).
Je développe actuellement un script permettant de détecter automatiques des bancs de galets dans des images aériennes et des MNT. Le script est déjà bien avancé et donnes des résultats pas trop mauvais.
Cependant, pour l'instant nous n'avons traités les images Ortho et les MNT que séparément !
Le prétraitement avant la détection des bancs est un gradient de Gauss inversé (La fonction " gimage = inverse_gaussian_gradient(gray, alpha=xxx, sigma=xxx)" de la bibliothèque scikit-image), l'image en sortie est donc en float 64
Aussi nous avons pour idée d'essayer de fusionner les gradients de Gauss générés avec l'image Ortho et avec l'image MNT afin de voir si cela augmente notre précision/rappel/Fscore !
Voici donc un exemple de gradient obtenu avec l'image Ortho :
Et un exemple obtenu avec l'image de pente du MNT :
Les 2 images possèdent exactement la même emprise et le même nombre de pixels
L'idée serait de comparer les pixels des 2 images un à un et de mettre une "pondération".
Par exemple si le pixel du gradient Ortho indique qu'il y a un contour tandis que le gradient du MNT dis que non, on ne conservait que la valeur du pixel du gradient Ortho et inversement. Dans le but de créer une 3ème image "composite" des 2 autres.
Je pensais essayer la fonction np.ravel pour passer les images en tableau 1D et comparer les pixels un à un, puis faire en sorte de conserver une des 2 valeurs à insérer dans un tableau vide qui me servirait à créer l'image "composite"
Cependant je ne vois pas trop comment coder ça ...
En effet je ne pratique pas la programmation depuis très longtemps et je n'arrive pas à trouver de solution pouvant convenir à ma situation sur internet.
Est ce que quelqu'un aurait une idée de si cela est possible, facilement faisable ou même aurait une meilleur idée ???
Vous remerciant par avance de votre aide !
Cordialement,
Maxime.C
Partager