Debutant matlab
Résolu/Fermé
Lolo
-
25 sept. 2008 à 12:03
Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 - 26 sept. 2008 à 03:23
Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 - 26 sept. 2008 à 03:23
5 réponses
Je pense avoir encore besoin d'aide en fait.
J'aimerais tracer la representation 3D d'une image que j'ai mais je ne sais pas si cela est possible...
En gros pour une photo de 1000 sur 1000 pixels, j'aimerais avoir x numero du pixel de colonne, y numero du pixel de ligne et en z l'intensité de chaque pixel.
Par exemple pour le pixel (500,499) j'ai une intensité de 16.
Comment pourais je m'y prendre?
J'aimerais tracer la representation 3D d'une image que j'ai mais je ne sais pas si cela est possible...
En gros pour une photo de 1000 sur 1000 pixels, j'aimerais avoir x numero du pixel de colonne, y numero du pixel de ligne et en z l'intensité de chaque pixel.
Par exemple pour le pixel (500,499) j'ai une intensité de 16.
Comment pourais je m'y prendre?
Sacabouffe
Messages postés
9427
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 835
25 sept. 2008 à 12:58
25 sept. 2008 à 12:58
Salut
v=zeros(n,1); for k=1:n v(k) = valeur_que_tu_veux; endA plus
Sacabouffe
Messages postés
9427
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 835
25 sept. 2008 à 14:23
25 sept. 2008 à 14:23
De rien !
Si t'as d'autres soucis, t'es le bienvenu ;-)
Si t'as d'autres soucis, t'es le bienvenu ;-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Sacabouffe
Messages postés
9427
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 835
26 sept. 2008 à 03:23
26 sept. 2008 à 03:23
Salut
En fait, ça dépend de ce que t'entends par "intensité".
En gros, si t'as une image couleur de 400x200, de profondeur de couleur 24 bits (sample de 3 octets par pixel), qu'on va appeler image.jpg, tu peux faire
Plus précisément :
A(:,:,1) te donne l'intensité du rouge pour chaque pixel
A(:,:,2) te donne l'intensité du vert pour chaque pixel
A(:,:,3) te donne l'intensité du bleu pour chaque pixel
Donc pour tracer l'intensité de chaque couleur, ça te ferait un truc du genre
Par contre, en ce qui concerne les profondeurs de couleurs utilisées par défaut par chaque format, je dois dire que j'en sais rien. Du coup, si t'as une image de taille 400x200 et de profondeur de couleur 8 bits, en faisant
Bonne nuit ;-)
En fait, ça dépend de ce que t'entends par "intensité".
En gros, si t'as une image couleur de 400x200, de profondeur de couleur 24 bits (sample de 3 octets par pixel), qu'on va appeler image.jpg, tu peux faire
A = imread('image.jpg');T'obtiens un tableau 200x400x3, la dernière dimension du tableau correspondant aux valeurs du Rouge-Vert-Bleu (j'ai pas pris ton exemple de 1000x1000 pour la taille pour que tu vois mieux comment ça se présente, c'est plus clair avec une longueur et une largeur différentes).
Plus précisément :
A(:,:,1) te donne l'intensité du rouge pour chaque pixel
A(:,:,2) te donne l'intensité du vert pour chaque pixel
A(:,:,3) te donne l'intensité du bleu pour chaque pixel
Donc pour tracer l'intensité de chaque couleur, ça te ferait un truc du genre
A = imread('image.jpg'); [pixX pixY]=meshgrid((0:size(A,2)-1),(0:-1:-size(A,1)+1)); %% Tracé de l'intensité du rouge figure; surf(pixX,pixY,double(A(:,:,1))); shading interp; colorbar; title('Intensité du rouge'); %% Tracé de l'intensité du vert figure; surf(pixX,pixY,double(A(:,:,2))); shading interp; colorbar; title('Intensité du vert'); %% Tracé de l'intensité du bleu figure; surf(pixX,pixY,double(A(:,:,3))); shading interp; colorbar; title('Intensité du bleu');Note que le repérage se fait à partir du coin haut-gauche de l'image, donc faut faire un peu attention quand on trace.
Par contre, en ce qui concerne les profondeurs de couleurs utilisées par défaut par chaque format, je dois dire que j'en sais rien. Du coup, si t'as une image de taille 400x200 et de profondeur de couleur 8 bits, en faisant
A = imread('image.jpg');T'obtiens une matrice 200x400 et non plus un tableau 200x400x3, donc faudra que t'adaptes tout ça en fonction de ton image.
Bonne nuit ;-)