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!!!
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 -
puis-je avoir qulques codes Matlab pour la compression d'images par JPEG2000? merci
-
bonjour tout le monde
svp je veux faire un petit programme en matleb qui parcour une image et affiche le nombre de pixels blancs
merci avace.............. -
bonjour
traitement d'image solaire sous matlab pour mésure le diamètre solaire