Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2958 connectés 

  FORUM HardWare.fr
  Graphisme
  Infographie 3D

  matlab_affichage d'une image 2d en 3d (2d associé à un focus)

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Page Précédente
Auteur Sujet :

matlab_affichage d'une image 2d en 3d (2d associé à un focus)

n°767740
mimil71
Posté le 16-01-2006 à 15:31:24  profilanswer
 

voila j'ai quelques soucis sur matlab.
J'ai en finale une image associé à un focus pour chacun des pixels
 
exemple:
 
j'ai une image A=imread('image.bmp');
donc ici je charge mon image. Elle est nommé A;
 
voila comment est composé mon image (à la base nous avons une image 2d donc (x,y))
A(x,y,1) niveau de gris du pixel (x,y)
A(x,y,2) focus associé au pixel de coordonnée (x,y)
 
voila après je veu donc affiché une sorte d'image en relief vu que chaque zone de pixel correspond un focus différent...
 
Je ne sais pas trop comment fair et quelle fonction utiliser...


Message édité par mimil71 le 16-01-2006 à 15:33:57
mood
Publicité
Posté le 16-01-2006 à 15:31:24  profilanswer
 

n°767744
jirotoh
Posté le 16-01-2006 à 15:43:06  profilanswer
 
n°767745
mimil71
Posté le 16-01-2006 à 15:44:15  profilanswer
 

super !!! ca c dla réponse t super cool, ca m'aide de trop ...

n°767751
Profil sup​primé
Posté le 16-01-2006 à 16:04:09  answer
 

:??:

n°767753
mimil71
Posté le 16-01-2006 à 16:07:40  profilanswer
 

lol , les réponses sont super !!! ;)
Non mais c destiné au utilisateurs de matlab....
Les autres s'abstenir :)

n°767755
jlighty
Posté le 16-01-2006 à 16:09:19  profilanswer
 

mimil71> essaye avec plot3
"help plot3"
PS: par contre je ne sais pas si ton problème rentre dans la catégorie graphisme3D.


Message édité par jlighty le 16-01-2006 à 16:15:13
n°767757
jirotoh
Posté le 16-01-2006 à 16:11:17  profilanswer
 

mimil71 a écrit :

super !!! ca c dla réponse t super cool, ca m'aide de trop ...


 
j'ai pas compris la moitié  [:bap2703]


---------------
visit my portf o lio on jir o toh.com
n°767759
mimil71
Posté le 16-01-2006 à 16:14:59  profilanswer
 

lol ba oui c ce que je pensais fair avec plot3
Mais le problème c'est que ca marche comme un graphique
 
PLOT3(x,y,z), where x, y and z are three vectors of the same length,
plots a line in 3-space through the points whose coordinates are the
elements of x, y and z.
 
je comprend pas trop l'utilisation.. ok on entre des coordonnées mais comment fait ton pour chaque coordonné mettre la valeur du niveau de gris de la coordonnée (x,y);


Message édité par mimil71 le 16-01-2006 à 16:15:44
n°767760
jlighty
Posté le 16-01-2006 à 16:16:01  profilanswer
 

tu veux le faire en 3D ou seulement en 2D mais avec une variation de couleur ?
Si c'est en 2D -> plot avec spécification de la couleur


Message édité par jlighty le 16-01-2006 à 16:16:44
n°767762
mimil71
Posté le 16-01-2006 à 16:16:15  profilanswer
 

enfin je voi pas comment je peu passé mon image A avec cette fonction

mood
Publicité
Posté le 16-01-2006 à 16:16:15  profilanswer
 

n°767764
mimil71
Posté le 16-01-2006 à 16:17:10  profilanswer
 

non en faite je veu affiché l'image en relief comme un peu une motagne, c'est à dir du 2 d en relief (du 3d au final quoi)

n°767765
mimil71
Posté le 16-01-2006 à 16:18:08  profilanswer
 

une image 2d auquel on associé un axe z qui symbolise la focale (le relief)

n°767768
jlighty
Posté le 16-01-2006 à 16:22:33  profilanswer
 

donc tu dois utiliser la fonction plot3 rien de très difficile à faire :
tu peux passer par une boucle for imbriquée pour chaque couple (x,y) puis faire un plot3(x,y,A[x,y,2]);


Message édité par jlighty le 16-01-2006 à 16:23:24
n°767770
mimil71
Posté le 16-01-2006 à 16:26:48  profilanswer
 

oki je voi pour géré la focale, j'avais pas pensé à cette soluce par contre juste un souci le (x,y) correspond au coordonné mais il faut l'associé au niveau de gris de l'image...
Et la on a aucune valeur du niveau de gris de (x,y)

n°767772
jlighty
Posté le 16-01-2006 à 16:31:49  profilanswer
 

je suppose que la coordonnée Z (le relief) pour x et y données, est en fonction du niveau de gris ( A[x,y,1]) et du focus (A[x,y,2])
donc on gros on aura un code de ce type (syntaxe différente de matlab):
For x=1 à longueur image
For y=1 à largeur image
relief=f(A[x,y,1], A[x,y,2])
plot3(x,y,relief)
end for
end for


Message édité par jlighty le 16-01-2006 à 16:32:00
n°767773
mimil71
Posté le 16-01-2006 à 16:34:14  profilanswer
 

oki je vais tester ca...
Merci bien pour ton aide..
 
je te redirai si ca marche lol .. @++

n°767777
mimil71
Posté le 16-01-2006 à 16:57:07  profilanswer
 

par contre juste une info, f c'est sencé représenter une matrice ? car mon programme matlab:
 
function [img_3d]=affichage_3d(img)
 
%vérification de la bonne dimension entre les tabeaux
[y1,x1]=size(img);
 
%réajustement dimension réel
x1=x1/3;
 
for x=1 : x1
    for y=1 : y1
        relief=f(img[x,y,1], img[x,y,2]);
        plot3(x,y,relief);
    end  
end
 
erreur sur : relief=f(img[x,y,1], img[x,y,2]);

n°767778
mimil71
Posté le 16-01-2006 à 16:58:20  profilanswer
 

enfin bon la je suis en test je vais vérifier lol tnkiète je sais qd même me démerdé un peu ;) lol ca doit être les crochets ou chai po quoi qu'il comprend pas... ou un truc a la con :)

n°767782
mimil71
Posté le 16-01-2006 à 17:01:08  profilanswer
 

ouai c des parenthèses au lieu des crochets lol

n°767790
mimil71
Posté le 16-01-2006 à 17:10:48  profilanswer
 

par contre et logique, il comprend pas f et a vrai dir moi non plus, je comprend le concept mais je voi pas le truc

n°767794
mimil71
Posté le 16-01-2006 à 17:15:03  profilanswer
 

pour matlab, f est une matrice et il chercher des valeur dans la matrice f qu'il ne trouve pas puisque elle existe pas lol ... donc ya un pti souci

n°767800
jlighty
Posté le 16-01-2006 à 17:23:00  profilanswer
 

f() est une fonction :D, il calcule le relief suivant le focus et le niveau de gris. Sachant que je ne connais pas la formule pour calculer le relief, j'ai mis f().

n°767805
mimil71
Posté le 16-01-2006 à 17:26:55  profilanswer
 

oula lol, je vais aller me couché mdr... j'ai biento fini la journée lol c'est une fonction que tu as inventé ou alors elle est implémenter sur matlab? bon aller moi je reviens vendredi pour continué ....
 
enfin je reste encore un pti peu...

n°767807
jlighty
Posté le 16-01-2006 à 17:31:30  profilanswer
 

f() n'est pas LA fonction miracle ;) c'est juste que son résultat (le relief) dépend du niveau de gris et du focus sans qu'une relation soit établie.
La question est :
pour un couple de coordonnées x et y, comment calcules tu le relief (coordonnée z) ?

n°768950
mimil71
Posté le 18-01-2006 à 18:06:41  profilanswer
 

ce n'est pas en passant 1 chiffre en z que j'aurai un niveau de gris  associé à la position du pixel en z...
 
Je ne crois pas que se soit possible...
 
Enfin je vois le concept mais je vois vraiment pas comment cela est possible !
 
Une autre solution ??? :)

n°768968
jlighty
Posté le 18-01-2006 à 18:41:10  profilanswer
 

ben regarde dans l'aide de la fonction plot3 "help plot3"

Citation :

Various line types, plot symbols and colors may be obtained with
    PLOT3(X,Y,Z,s) where s is a 1, 2 or 3 character string made from
    the characters listed under the PLOT command.


tu peux mettre un 4ème paramètre pour spécifier la couleur de ton point.


Message édité par jlighty le 18-01-2006 à 18:41:52
n°768988
jlighty
Posté le 18-01-2006 à 19:51:21  profilanswer
 

Avec la fonction plot3, on ne peut pas spécifier une couleur via les valeurs RGB.
Sur ce site, il y a une version évoluée de plot3
http://www.mathworks.com/matlabcen [...] tType=file

n°769743
mimil71
Posté le 20-01-2006 à 11:15:45  profilanswer
 

oki je vais abandonné le plot3, car au niveau couleur c pas possible mais j'ai trouvé la fonction surf
 
ca ma l'air beaucoup plus adapté

n°769744
mimil71
Posté le 20-01-2006 à 11:16:08  profilanswer
 

SURF(X,Y,Z,C) plots the colored parametric surface defined by
    four matrix arguments.  The view point is specified by VIEW.
    The axis labels are determined by the range of X, Y and Z,
    or by the current setting of AXIS.

n°769745
mimil71
Posté le 20-01-2006 à 11:16:55  profilanswer
 

et C représente la couleur

n°769758
jlighty
Posté le 20-01-2006 à 11:40:07  profilanswer
 

Oui je viens te tester, ça à l'air d'être fonctionnel. Par contre la création des matrices X et Y est assez spécial.
http://www.mathworks.com/access/he [...] /surf.html
ex: si ton image fait 4x4 pixels :
 

Code :
  1. x=[ 1 2 3 4;
  2.     1 2 3 4;
  3.     1 2 3 4;
  4.     1 2 3 4];
  5. y=[ 1 1 1 1;
  6.     2 2 2 2;
  7.     3 3 3 3;
  8.     4 4 4 4];


Message édité par jlighty le 20-01-2006 à 11:40:41
n°769761
mimil71
Posté le 20-01-2006 à 11:43:24  profilanswer
 

ba j'ai décomposé mon image en 2 matrice
une matrice des couleurs
une matrice des focus
 
le problème que je comprend pas c'est que j'ai une image bmp au début et dès que je fait un imshow(A) A étant mon image, je perd la couleur

n°769764
mimil71
Posté le 20-01-2006 à 11:45:39  profilanswer
 

la couleur est composé de 3 données RGB  
mais dès que je fait un imread, j'ai plus que une valeur pour un pixel...

n°769767
mimil71
Posté le 20-01-2006 à 11:50:47  profilanswer
 

Si j'ai une image .jpg, si je fait un imread, j'ai les couleur mais pour un .bmp il ya l'air que ca me zappe les couleurs...

n°769773
jlighty
Posté le 20-01-2006 à 12:02:56  profilanswer
 

pourtant  

Citation :

BMP   1-bit, 4-bit, 8-bit, 16-bit, 24-bit, and 32-bit uncompressed
          images; 4-bit and 8-bit run-length encoded (RLE) images


sinon tu peux essayer avec du png à la place du jpeg.

n°769782
mimil71
Posté le 20-01-2006 à 12:57:02  profilanswer
 

j'ai compris pourquoi ca marchai pas.
 
Qd jouvre avec matlab mon image .bmp , j'ai 2 matrice un cdata et une autre color map alors qu'avec une image .jpg, j'ai que une matrice à 3 dimension

n°769784
mimil71
Posté le 20-01-2006 à 13:03:21  profilanswer
 

bon ca me fera donc une image à 4 dimension
1:R
2:G
3:B
4:focus

n°769786
mimil71
Posté le 20-01-2006 à 13:04:09  profilanswer
 

par contre je sai pas comment ca fera pour la fonction surf pour passé la matrice RGB

n°769787
mimil71
Posté le 20-01-2006 à 13:10:46  profilanswer
 

euh juste un problème je devai calculé la variance sur mon image, avec une image bmp, ca marchai, je prennai le cdata (image en niveau de gris) et je calculai la variance avec une fenêtre 3x3...
 
Mais avec une image en jpg avec RGB ca marche plus..
 
Je pense qu'il faut juste prendre les niveau de gris, ca minkiète car en faite j'ai plusieur image flou a la base, et je fait un mix de cet image pour au final avoir une image nette

n°769822
jlighty
Posté le 20-01-2006 à 14:10:38  profilanswer
 

mimil71 a écrit :

par contre je sai pas comment ca fera pour la fonction surf pour passé la matrice RGB


tu veux faire un graphique dans ce genre http://www.mathworks.com/access/he [...] rface.html ?


Message édité par jlighty le 20-01-2006 à 14:25:16
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Graphisme
  Infographie 3D

  matlab_affichage d'une image 2d en 3d (2d associé à un focus)

 

Sujets relatifs
Mettre une image Gif sur une image bitmap et faut que ça bouge?Coordonnées image vectorielle
affichage de police dans quark xpressaffichage du site
Modélisation personnage pour une image fixe ?Problème d'affichage ???
Clarté d'image sur site webModification simple d'une image svp
Logiciel de remplissage d'imagerésolution d'image imprimeur
Plus de sujets relatifs à : matlab_affichage d'une image 2d en 3d (2d associé à un focus)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR