2013-06-11 6 views
1

J'ai des fichiers geotif et j'essaie de créer une mosaïque. J'ai essayé de mettre les images les unes à côté des autres d'abord d'affilée, puis j'ai essayé de joindre les colonnes et d'avoir la mosaïque finale. Je voudrais avoir le fichier de sortie avec le numéro de sauvegarde de la boucle (outimage1, outimage2, ..). Je voudrais savoir comment dois-je introduire le fichier de sortie avec la séquence du numéro de boucle.comment enregistrer des fichiers dans une boucle dans Matlab?

Je serais heureux si quelqu'un m'aider à trouver mon erreur dans le code suivant.

close all; 
clear all; 
clc; 

path = 'E:\MATLAB\...\tifs\'; 
path2 = 'E:\MATLAB\...\tifs\out\'; 

matfiles = dir(fullfile('E:', 'MATLAB',...,'tifs','*.tif')); 

files = {matfiles.name}; 
lf=length(files); 

image_row = []; 


for L=1:11 
    for k=1:14:lf 
      fname = matfiles(k).name; 
      fullname = horzcat (path,fname); 
      infile = imread (fullname); 
      image_row= [image_row,infile]; 
      [~, ~, ext] = fileparts(fname); 
      outimage = fullfile(path2, sprintf('outimage%d%s', L, ext)); 
      imwrite(image_row,outimage); 
    end 

end 

Votre assistant est très apprécié.

+0

Questions connexes pourraient être [ce] (http : //stackoverflow.com/questions/14213442/matlab-file-name-with-zero-padded-numbers/14214042#14214042) et [this] (http://stackoverflow.com/questions/15366374/how-can- i-load-100-fichiers-avec-noms-similaires-et-ou-st ring-in-just-one-step-in-ma/15366423 # 15366423). – Shai

+0

La prochaine fois, il vaudrait mieux que vous fournissiez un exemple de code plus concis qui démontre l'erreur que vous rencontrez + une meilleure localisation/description du message d'erreur et l'emplacement exact qui l'a invoqué. – Shai

Répondre

1

Je ne suis pas familier avec une syntaxe matlab k. format(fname).
Si vous voulez faire une mise en forme de chaîne dans Matlab - lisez this first.

Une solution à votre problème pourrait être

outimage = fullfile(path2, sprintf('outimage_%03d_%s', k, fname)); 

EDIT:
suivant comment by OP, obtenir le format de fichier (TIF):

[~, ~, ext] = fileparts(fname); 
outimage = fullfile(path2, sprintf('outimage%d.%s',ext)); 
+0

merci beaucoup pour votre réponse rapide. Désolé j'ai eu un problème avec mon internet et cela a fait ce retard. Ce que je veux dire avec **. format (fname) ** est d'obtenir le format du fichier d'entrée qui est .tif. – user2355306

+0

@ user2355306 voir modifier – Shai

+0

@ Shi: Merci pour l'édition. bien, j'ai fait face à un problème maintenant concernant le nom de nouveaux dossiers. ce à quoi je m'attendais, c'était d'avoir des sorties comme (outimage1, outimage2, ..., outimage10, outimage11) mais ce que j'ai reçu est (outimage1, outimage15, ..., outimage127, outimage141). Pensez-vous en introduisant une autre boucle que je peux résoudre ce problème? ou peut-être introduire une autre indexation pour le fichier de sortie? – user2355306

Questions connexes