bonjour a tous,voila je travaille en ce moment sur mon projet de fin d'études utilisant MATLAB,j'ai 15 000 images à traiter et j'aimerai savoir svp comment lire toutes ces images?sachant que je sais seulement comment lire une seule à la fois
-----
bonjour a tous,voila je travaille en ce moment sur mon projet de fin d'études utilisant MATLAB,j'ai 15 000 images à traiter et j'aimerai savoir svp comment lire toutes ces images?sachant que je sais seulement comment lire une seule à la fois
Bonjour,
Je vois deux solutions :
le non des images est du genre formaté : image_xxx avec xxx le numéro de l'image. tu fait un boucle de lecture en incrémentant xxx.
sinon il faut faire un fichier qui contient la liste des fichiers a lire.
La logique est une méthode systématique d’arriver en confiance à la mauvaise conclusion.
Je ne connais pas la taille de tes images, mais il y a de grande chance que matlab plante bien avant que tu es ouvert les 15000 images...
et bien mes images sont de format tif mais de tailles differentes et ils sont tous sous un nom genre(cdf0000_14_3_0.tif)avec les chiffres qui changent de chaque image!le prof nous a dit de ne pas changer de nom à la base de données donc je ne sais pas comment faire!
alors!!!personne ne veut m'aider
Pourquoi te sentir abandonné(e) ? N'aurait-il pas été plus juste d'écrire : personne ne peut m'aider ?
Dernière modification par JPL ; 06/03/2011 à 19h12.
Rien ne sert de penser, il faut réfléchir avant - Pierre Dac
Salut
Essaie avec la commande dir. Genre si tes images sont dans un dossier nommé images qui lui-même se trouve dans le dossier dans lequel t'es en train de bosser, tu tapes:
et après dans mes_images.name t'as le nom de tes images dans une structure. A mon avis vaut mieux passer en cell donc:Code:mes_images=dir('images');
là si t'affiches mes_images2 (disp(mes_images2)) pour voir à quoi ça ressemble tu vois que t'as le nom de tes images à certains endroit de la cellule, par exemple tu peux avoir ça:Code:mes_images2=struct2cell(mes_images);
Ici mes_images2 est une cell de taille 5x9. Mes images commences à partir de la colonne 3. Et pour avoir par exemple le nom de mon image1 je fais:Code:Columns 1 through 4 '.' '..' 'image1.png' 'image2.png' [1x20 char] [1x20 char] [1x20 char] [1x20 char] [ 0] [ 0] [ 9216] [ 9235] [ 1] [ 1] [ 0] [ 0] [7.3457e+05] [7.3457e+05] [ 7.3457e+05] [ 7.3457e+05] Columns 5 through 7 'image3.png' 'image4.png' 'image5.png' [1x20 char] [1x20 char] [1x20 char] [ 9052] [ 9040] [ 9036] [ 0] [ 0] [ 0] [ 7.3457e+05] [ 7.3457e+05] [ 7.3457e+05] Columns 8 through 9 'image6.png' 'image7.png' [1x20 char] [1x20 char] [ 8313] [ 8573] [ 0] [ 0] [ 7.3457e+05] [ 7.3457e+05]
et donc pour lire mon image1 je faisCode:s=string(c{1,3})
Donc au final:Code:imread(['images/' s]);
Code:mes_images=dir('images'); mes_images2=struct2cell(mes_images); for i=1:NOMBRE_D_IMAGES s=string(c{1,i+2}); %le +2 si tes images commences à la 3e colonne comme chez moi Toutes_tes_images{1,i}=imread(['images/' s]); end
La pie niche-t-elle haut ? Oui, la pie niche haut.
Je te remercie fiatlux pour ta réponse,dans un premier temps j'ai pas trop compris pourquoi le passage a "cell" après il y a la fonction s=string(c{1,3}) que veux tu dire par là stp
en fait avec cette fonction dir on obtient une "struct", et c'est un format de données que je connais très mal, donc je l'ai converti en un format que je préfère (cell) qui est beaucoup plus facile à visualiser.
Ensuite j'ai forcé le type du nom de l'image au format string. Dans la cell, les noms 'image1.png' et compagnie était des tableau de char, je les ai forcé au format string car pour lire une image avec imread, il faut que le nom de l'image soit une string.
La pie niche-t-elle haut ? Oui, la pie niche haut.