Bonjour,
Je vais essayer d'expliquer clairement mon problème. J'ai une matrice A qui contient les valeurs des nuances de gris des pixels d'une image, qui est définie ainsi :
Grace à un ruban gradué sur mon image, je peux déterminer la taille d'un pixel en centimètre :Code:
1
2
3 A=imread('nom.png'); imagesc(A); colormap gray; axis image;
Ici, xech est un vecteur contenant 2 valeurs, xech(1) est la valeur du pixel positionné à "1 cm", xech(2) la valeur du pixel positionné à "2 cm".Code:taillepix=1/(xech(2)-xech(1));
Mon image étant constitué de bandes noires et blanches verticales, je veux tracer une courbe représentant les variations de nuances de gris dans mon image sur une ligne perpendiculaire aux bandes. Jusqu'ici tout va bien. Mon problème est qu'en abscisse, j'ai actuellement les "numero" des pixels, alors que je voudrais qu'il y ait la valeur en centimètres correspondante.
J'ai essayé quelque chose comme ça :
Et ça ne me renvoie pas la courbe souhaitée ... Je comprend bien pourquoi (en fait il me trace une courbe jusqu'au pixel 9 à peu près puisque la dernière valeur de mon vecteur abscisse est environ 9) mais du coup je ne sais pas comment me sortir de cette affaire ...Code:
1
2
3 abscisse=0:size(A,2)-1; abscisse=abscisse*taillepix; plot(abscisse,A(200,:));
Auriez vous des idées à me proposer, ou des fonctions à essayer ?
Aussi, je précise que j'utilise matlab 2014 et que je crois qu'il ne connait pas la fonction xtick car quand je fais help xtick il ne trouve rien.
Et inutile de préciser, je pense, que je suis débutante :lol:
Merci d'avance,
Bonne soirée
Pauline