Traitement image matlab

Fermé
pikinos - 15 sept. 2009 à 21:31
damlegone32 Messages postés 74 Date d'inscription lundi 11 septembre 2006 Statut Membre Dernière intervention 31 mai 2011 - 17 sept. 2009 à 22:18
Bonjour,bonjour j'ai commencé à travailler sur matlab il y a deux jours et j'y comprends pas grand chose.
j'ai une image de référence et une autre identique mais le motif à l'intérieur à un angle différent.
je dois calculer cet angle et faire que les deux images soient rigoureusement identiques.
j'ai pensé faire une boucle for pour parcourir tous les pixels mais je ne sais pas comment pouvoir calculer la pente du motif de l'image 2 par rapport à celui de l'image 1
merci d'avance

Alors en fait il s'agit d'un billet de banque (donc en gros d'un rectangle) et je voulais parcourir l'image pixel par pixel pour déterminer les coins du billet comme il est sur fond noir il y a un fort contraste mais j'arrive pas à obtenir leurs coordonnées.(je voulais faire une boucle genre for l de 1 jusqu'au nombre de ligne
for c de 1 jusqu'au nombre de colonnes
if [l,c]> genre 1 alors noter les valeurs de l et de c
et après récupérer le couple de valeurs pour lequel l est minimum d'une part et d'autre part le couple de valeur pour lequel c est minimum
Si je les avais je pourrais déterminer la pente et ainsi 'redresser l'image'

Je sais pas si je suis très claire mais j'espère que vous pourrez m'aider
merci d'avance
A voir également:

1 réponse

damlegone32 Messages postés 74 Date d'inscription lundi 11 septembre 2006 Statut Membre Dernière intervention 31 mai 2011 29
17 sept. 2009 à 22:18
Bonjour,
Voila comment je m'y prendrais:
Pour trouver la limite supérieure du billet:
1) tu te places sur une colonne
2) sur cette colonne tu parcours chaque pixels vers le bas et dès que la valeur dépasse un seuil (0 si le fond est vraiment noir) alors tu stockes la coordonnée du pixel
3) tu fais ça pour chaque colonne
4) ensuite un simple regression lineaire des coordonnées obtenue te donnera la pente...
Et ainsi de suite pour tous les cotés du billet

En code matlab ca devrait donner a peu près ça (pour la limite supérieure):

for indice_col = 1:nb_col
   for indice_lig=1:nb_lig
      if(image(indice_lig,indice_col)>seuil)
         x(indice_col) = indice_col;
         y(indice_col) = indice_lig;
         break;
      end
   end
end
p = polyfit(x,y,1) %p(1) contient  le coef directeur et p(2) l'ordonnée à l'origine
2