Matlab lire images dans fichier 'raw'

Fermé
cedji - 29 juin 2009 à 09:11
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 30 juin 2009 à 12:17
Bonjour,

Je travaille actuellement sur un projet et cela fait plusieurs jours que je suis bloquée.
Je dispose d'un fichier 'raw' contenant une certaine quantite d images, je ne sais pas combien exactement (entre 110 et 130 je pense). Mais jai un probleme pour les ouvrir. J ai fait une boule mais celle ci ne sarrete jamais meme quand il n y a plus de photos, elle continue a afficher des images blanches...
Voici mon programme:

clear all;
close all;

fichier1 = 'HighEnergyCTHeadCoil.raw'

f1 = fopen(fichier1,'r');

im1 = fread(f1,[512 512],'int16','ieee-le')

end1 = feof(f1)

c=0;

while (end1==0)
im1 = fread(f1,[512 512],'int16','ieee-le');
figure,imagesc(im1)
colormap(gray)
c=c+1
end


Est ce que qqn pourrait m'aider svp?

Merci d'avance
A voir également:

13 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
29 juin 2009 à 11:08
while (end1==0) ?
end1 est une variable, quand penses-tu qu'elle est mise à jour ?
tente
while(feof(f1)==0)
0
J'ai testé avec ce que vous m'avez proposé mais ca ne fonctionne toujours pas...
javias oublié de préciser le message d erreur que jobtiens :

Out of Windows Resources: Allocation of bitmap failed. Disabling backingstore for current figure.

Peut etre que cela peut aider...

merci
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
29 juin 2009 à 11:41
C'est sur, ça peut aider.
Il faut alors savoir quand il arrive. Dès la première image ou plus tard.
Si c'est plus tard, c'est un problème de ressource comme indiquer. Tu doit avoir de grosses images.
0
ca arrive au bout de 130 images.
Les images sont de type 512*512
Est que cela veut dire qu il y a en fait plus d images dans le fichier?? pcq je n ai pas reussi a savoir le nombre d images dans le fichier...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
29 juin 2009 à 12:46
512*512*130*(3*8bit/pixel)=100Mo ça commence à faire.
D'après le message c'est plus un problème de ressource, c'est à dire de taille mémoire.
0
Et comment je peux faire pour resoudre le problème? Parce que si je réduis la taille des images, ca ne va pas altérer leur qualité?
Sinon comment je peux faire pour savoire exactement le nombres d'images du fichier? pcq jai essayé plusieurs méthodes avec length ou size et ca ma donné des resultats bizarre...
Merci
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
29 juin 2009 à 14:00
évite d'afficher les image !
mets les en mémoire tampon si tu veux, mais ne les affiches pas.
0
Ba oui mais le probléme cést que j ai besoin de les afficher car je veux après travailler dessus, sur le contraste... etc
Comment puis-je savoir combien d'images il y a en tout svp?
merci
0
Sil vous plait est ce que vous pouvez m'aider??? C est tres important...
merci
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
29 juin 2009 à 16:24
Je ne sais pas. Mais afficher plus de 130 image, c'est du délire ! ça fait plein de truc ouvert, tu ne t'en sortira jamais !
Dans un premier temps, test sans afficher les images, voir si le problème viens bien de là.
Ensuite, stocke les images en mémoire et affiche les au fur et à mesure.
Ou sinon, tu fais une pause entre chaque image de manière à en traiter une et à la fermer avant d'ouvrir la suivante.
0
Je viens de faire le test sans affichage d'image et jen conclue qu il y a 305 images dans le fichier...
maintenant y a t il un pour modifier la boucle pour n'afficher par exemple que 5 images a la fois? par exemple de la 200 a la 205?

merci
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
30 juin 2009 à 08:11
ba oui, avec un if.
if(200<c && c<205) imagesc(fff)
0
merci ca a marché

maintenant jai un autre probleme
en fait je dispose de deux fichiers 'raw'
le premier comprend 305 images, est de type [512 512] avec precision int16
et le deuxieme comprend 512 images est de type [512 512] avec precision float

je sais que les images contenues dans les deux fichiers comprennent les meme images, la seule difference etant la qualité de ces images. dans le premier fichier, on voit tous les details mais les images ne sont pas parfaites (Bruit...), dans le deuxieme fichier limage est parfaite mais il manque des details

ce que je veux faire : superposer les deux images. le probleme, cest que le nombre dimages contenues dans les fichiers n'est pas le meme.
a laide d'un logiciel de traitement dimage, jai reussi a realise ce travail. en fait le probleme est que les images du deuxieme fichiers sont plus grande c pour ca quil y en a plus. il sagit en fait dimages en coupe dun objet. et comme dans le deuxieme fichier lobjet est plus grand et bien jai plus dimage

je voudrai donc pouvoir redimmensionner la deuxieme image tout en restant en [512 512]
Je ne vois pas trop comment faire
Jai essaye ac la fontion 'resize' mais ca diminue le nombre de colonnes de la matrice....

Jespere avoir été claire

Merci de m'aider si vous le pouvez
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
30 juin 2009 à 12:17
pas très clair.
0