MATLAB: Traitement d'images TIF
Lord Belzebuth
-
FATIHABENNOUI Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
FATIHABENNOUI Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
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
- Programmer avec MATLAB ✓ - Forum Matlab
- Termes de Matlab ✓ - Forum Matlab
- Problème diffusion matlab - Forum Matlab
- Boucle for 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