MATLAB: Traitement d'images TIF
Lord Belzebuth
-
FATIHABENNOUI Messages postés 2 Statut Membre -
FATIHABENNOUI Messages postés 2 Statut Membre -
Bonjour tout le monde...
J'ai deux images 8-bits Z1 & Z2, en fomat TIFF de (4000pixels)x(4000pixels)...
J'aimerais fait un traitement de style NDVI. C'est-à-dire que j'aimerais créer une nouvelles image TIF ou chacune des valeurs de chacun de ses pixels est égale à:
pixZ3=(pixZ1-pixZ2)/(pixZ1+pixZ2) avec pixZ1 & pixZ2 qui sont les valeurs (entre 0 et 255) des pixels correspondants sur les images de base...
Pour le moment, je fais ça dans Matlab à l'aide d'une succession de commandes:
P=double(imread('photo1.tif'))
G=double(imread('photo2'.tif))
N1=(P-G)
N2=(P+G)
NDVI=(N1./N2)
Z=SINGLE(ROUND(128.+(128*NDVI))
Puis j'aimerais reconstituer une image TIF à partir de cette matrice Z... (D'ailleurs comment utiliser la commade IMAGE dans Matlab???)
Est-ce que la démarche est la bonne???
Y'a-t-il moyen d'écrire ceci sous forme un peu plus esthétique (Comment faire pour obtenir un fichier en language m qui me fait tout ça?)?
Comment faire pour ne pas saturer la mémoire à disposition pour les variables?
Est-ce qu'il est possible de faire ça avec Octave???
Meri beaucoup!!!
J'ai deux images 8-bits Z1 & Z2, en fomat TIFF de (4000pixels)x(4000pixels)...
J'aimerais fait un traitement de style NDVI. C'est-à-dire que j'aimerais créer une nouvelles image TIF ou chacune des valeurs de chacun de ses pixels est égale à:
pixZ3=(pixZ1-pixZ2)/(pixZ1+pixZ2) avec pixZ1 & pixZ2 qui sont les valeurs (entre 0 et 255) des pixels correspondants sur les images de base...
Pour le moment, je fais ça dans Matlab à l'aide d'une succession de commandes:
P=double(imread('photo1.tif'))
G=double(imread('photo2'.tif))
N1=(P-G)
N2=(P+G)
NDVI=(N1./N2)
Z=SINGLE(ROUND(128.+(128*NDVI))
Puis j'aimerais reconstituer une image TIF à partir de cette matrice Z... (D'ailleurs comment utiliser la commade IMAGE dans Matlab???)
Est-ce que la démarche est la bonne???
Y'a-t-il moyen d'écrire ceci sous forme un peu plus esthétique (Comment faire pour obtenir un fichier en language m qui me fait tout ça?)?
Comment faire pour ne pas saturer la mémoire à disposition pour les variables?
Est-ce qu'il est possible de faire ça avec Octave???
Meri beaucoup!!!
A voir également:
- MATLAB: Traitement d'images TIF
- Gnu octave matlab - Télécharger - Édition & Programmation
- Boucle for matlab - Forum Matlab
- Matlab vs maple - Forum Logiciels
- Comment sortir d'une boucle (matlab) - Forum Matlab
- TIPE à faire avec Matlab - Forum Matlab
4 réponses
Salut.
Je pense que la démarche est la bonne. Ta façon de l'écrire est plutôt propre (pas de boucles).
Pour sauvegarder au format TIF, je ne sais pas trop, mais il doit y avoir une commande imsave, ou imwrite().
Elle doit être cité dans 'help imread'
sous octave, tu peut aussi le faire a priori (j'ai pas tester, mais les fonctions sont dispo dans la version 2.1.42 sous win) mais il faut faire : imread("tiff:file.tif"); voir l'aide pous plus de détails
Je pense que la démarche est la bonne. Ta façon de l'écrire est plutôt propre (pas de boucles).
Pour sauvegarder au format TIF, je ne sais pas trop, mais il doit y avoir une commande imsave, ou imwrite().
Elle doit être cité dans 'help imread'
sous octave, tu peut aussi le faire a priori (j'ai pas tester, mais les fonctions sont dispo dans la version 2.1.42 sous win) mais il faut faire : imread("tiff:file.tif"); voir l'aide pous plus de détails