MATLAB: Traitement d'images TIF

Fermé
Lord Belzebuth - 14 nov. 2006 à 09:28
FATIHABENNOUI Messages postés 2 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 26 mars 2009 - 26 mars 2009 à 11:23
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!!!

4 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
14 nov. 2006 à 13:20
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
0
rachidien Messages postés 6 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 10 juillet 2009 6
8 mai 2008 à 16:16
puis-je avoir qulques codes Matlab pour la compression d'images par JPEG2000? merci
0
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..............
0
M=imread('c:\etc.... \monimage.jpg');
M1=M(:,:,1);
M2=M(:,:,2);
M3=M(:,:,3);
NbrePixelsBlancs=length(find((M1==1)&(M1==2)&(M1==3));

(ou peut etre 255 à la place de 1, regarde comment son codées les couleurs dans M)
0
FATIHABENNOUI Messages postés 2 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 26 mars 2009
26 mars 2009 à 11:23
bonjour
traitement d'image solaire sous matlab pour mésure le diamètre solaire
0