Fonctions > Vecteur et matrice > Autres fonctions de tableau > Exemple : Corrélation 2D et mise en correspondance de prototype
  
Exemple : Corrélation 2D et mise en correspondance de prototype
Illustre la corrélation d'un noyau 2D avec une image dans le domaine spatial.
Le noyau gaussien est un noyau particulièrement intéressant qui produit un effet de lissage.
Pour plus d'informations sur l'utilisation de cet exemple, voir A propos des exemples de traitement d'image.
Corrélation 2D
1. Utilisez la fonction READ_IMAGE pour lire dans une image.
Cliquez pour copier cette expression
2. Utilisez la fonction WRITEBMP pour enregistrer l'image dans un fichier.
Cliquez pour copier cette expression
3. Définissez la plage et la fonction du noyau.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
4. Evaluez la matrice du noyau 5 x 5.
Cliquez pour copier cette expression
Ce noyau est symétrique. L'effet est donc le même qu'une convolution, qui correspond à une corrélation avec le noyau inversé.
5. Définissez un facteur d'échelle mcscale.
Cliquez pour copier cette expression
6. Calculez la corrélation interne puis convertissez le résultat en niveaux de gris sur 8 bits (valeurs comprises entre 0 et 255).
Cliquez pour copier cette expression
7. Utilisez la fonction WRITEBMP pour enregistrer les résultats dans un fichier.
Cliquez pour copier cette expression
8. Tracez l'image d'origine et la corrélation de l'image avec le noyau.
(greyscale_dog.bmp)
(dog_cross.bmp)
Mise en correspondance de prototype
1. Utilisez la fonction READ_IMAGE pour lire dans une nouvelle image.
Cliquez pour copier cette expression
2. Utilisez la fonction WRITEBMP pour enregistrer les résultats dans un fichier.
Cliquez pour copier cette expression
(peas_carrots.bmp)
Cliquez pour copier cette expression
La sélection choisit une carotte représentative comme modèle.
3. Définissez la hauteur et la largeur du modèle.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
4. Définissez la fonction val et utilisez-la dans la fonction matrix pour créer le modèle.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
5. Tracez le modèle et les images de carottes.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
(template.bmp)
(carrot.bmp)
6. Définissez le seuil de corrélation.
Cliquez pour copier cette expression
7. Utilisez le modèle uniforme de la même taille que la carotte sélectionnée ou utilisez l'image représentative de la carotte elle-même pour calculer le nombre de correspondances :
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cliquez pour copier cette expression
(carrot_vect.bmp)
Presque tous les petits pois sont noircis, éliminés par les valeurs de seuil sans corrélation, tandis que la plupart des carottes demeurent visibles. La correspondance est faite entre l'image d'origine et le modèle rectangulaire de densité uniforme, qui enlève grossièrement les carottes dans cet échantillonnage aléatoire d'un paquet de légumes surgelés.
8. Calculez le pourcentage approximatif de carottes dans l'image d'origine.
Cliquez pour copier cette expression
Cliquez pour copier cette expression
Cette technique s'avère également utile pour le comptage de bactéries, ainsi que pour d'autres estimations de pourcentage portant sur les caractéristiques d'une image.