2016-07-07 3 views
-3

Ich habe eine Funktion, die mehrseitige TIFF-Bilder nimmt und den Durchschnitt des maximalen Pixels von jeder Seite findet. Diese Funktion funktioniert einwandfrei, erfordert jedoch eine variable Anzahl von Eingabepfaden unter Verwendung der Varargin-Funktion.Wie schnell char-Variablen entsprechend den Bildpfaden in Matlab erstellen?

Die Eingaben hätten ein Format wie 'C: \ Users \ me \ desktop \ thefolder \ theimage.tif', die Funktion nimmt alle diese Eingaben und gibt mir die Durchschnittswerte. Ich brauche Hilfe, diesen Prozess ein bisschen mehr zu automatisieren.

Bis jetzt habe ich nur manuell für jedes einzelne Bild den Pfad zu schreiben, aber die Anzahl der Mehrseitentiff geht nach oben wird es zeitaufwendig, alles zu schreiben ...

Wie schreibe ich ein Funktion, die leicht alle Bilder finden wird, dann gebe ich Char-Variablen im Arbeitsbereich entsprechend allen Bildpfaden, die ich dann an die Hauptfunktion füttern kann?

+0

[Loop-Dateien in einem Ordner in Matlab] (http://StackOverflow.com/Questions/11621846/loop-through-Files-in-Afolder-in-Matlab) – excaza

Antwort

0

Die Funktion dir kann Platzhalter verwenden, um ein Struktur-Array aller übereinstimmenden Dateien in einem einzigen Ordner zurückzugeben.

z.

>> files = dir('C:\Users\me\desktop\thefolder\*.tif'); 

files = 

3x1 struct array with fields: 

    name 
    date 
    bytes 
    isdir 
    datenum 

Sie könnten Schleife durch jedes Element des Arrays, oder Sie können ein Zellenfeld im Arbeitsbereich erstellen, wie folgt:

>> tif_filenames = {files.name} 

tif_filenames = 

    'theimage.tif' 'another.tif' 'and_another.tif' 

Allerdings, wenn Ihre Verarbeitungsfunktion varargin verwendet, dann können Sie einfach Anruf es wie folgt:

>> find_max_average_pixel(files.name) 

und MATLAB bildet jeden Dateinamen auf einen Eintrag in varargin, so von innen Ihre Funktion scheint es, als ob es mit m bezeichnet worden ist mehrere Saiten.

Wenn Sie Dateien aus einem Baum von Unterordnern ziehen möchten, dann braucht es ein wenig mehr Gedanken.

+0

Vielen Dank, hat perfekt funktioniert –