WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Mehrere Bilder automatischin Matlab einlesen

 

Chrissy

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.06.2015, 15:46     Titel: Mehrere Bilder automatischin Matlab einlesen
  Antworten mit Zitat      
Hallo zusammen,

ich möchte in Matlab verschiedene Bilder automatisch einlesen. Dazu habe ich 4 verschiedene Ordner. Für jeden Ordner soll eine separate Matrix mit den entsprechenden Bildern erstellt werden. Dazu verwende ich folgenden Code, den ich als Funktion abgespeichert habe:

Code:

function[]=LoadPictures1an();
files1an = uigetfile('*.bmp', 'Dateien wählen', 'MultiSelect', 'On');
for i = 1:length(files1an)
fd1an = fopen(files1an{i});     % Datei öffnen
save fopen(files1an{i});
end
end


Dadurch wird folgende Datei in meinem current folder erstellt:
fopen(files1an{i}).mat

Wenn ich diese Datei dann im Workspace öffne, erscheinen mir drei Variablen:
i 34
files1an <1x34 cell>
fd1an -1

Das i gibt mir die Anzahl der Bilder, files1an gibt mir die Namen der Bilder wieder und fd1an sollte doch die Werte des Bilder, also die Größe des Bildes und die Helligkweitswerte angeben. Wieso gibt mir Matlab hier -1 aus?

Ich habe noch einen anderen Code ausprobiert, den ich im Matlab-Forum gefunden habe:
Code:
[/>> [fileName, pathName, filterIndex] = uigetfile({'*.bmp'},'Select files(s)', 'MultiSelect' ,'on');%read of the file
% set(handles.filenames,'String',fileName);
imcell = cell(1,numel(fileName));
for k = 1:numel(imcell)
imcell{k} = imread(fileName{k},'bmp');% read-in the data of the file
end


Jedoch habe ich bei diesem Code das Problem, dass ich die Bilder in exakt diesem Pfad abgespeichert werden müssen. Dies ist aber für mich blöd, da ich für jeden dieser 4 Ordner eine eigene Matrix mit diesen Bildern benötige.

Wer kann mir dabei weiterhelfen?


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 06.06.2015, 16:04     Titel: Re: Mehrere Bilder automatischin Matlab einlesen
  Antworten mit Zitat      
Hallo Chrissy,

Zitat:
Code:
function[]=LoadPictures1an();
files1an = uigetfile('*.bmp', 'Dateien wählen', 'MultiSelect', 'On');
for i = 1:length(files1an)
fd1an = fopen(files1an{i});     % Datei öffnen
save fopen(files1an{i});
end
end

Du möchtest Bilder einlesen. Wozu soll dann das SAVE dienen?
Die Files werden per FOPEN zum Lesen geöffnet, aber nicht wieder geschlossen. Nach einiger Zeit sollte dann die Anzahl gleichzeitig offener Files größer sein, als das Betriebssystem erlaubt. Es fehlt als dringend ein FCLOSE.
Was soll die Zeile "save fopen(files1an{i});" machen? Sie speichert die aktuell existierenden Variablen unter dem Namen "fopen(files1an{i})" als File im MAT-Format, wie Du bereits beobachtet hast. Für eine Verbesserungsvorschlag müssten wir nun noch wissen, was stattdessen geschehen soll.
Ein FOPEN hat im SAVE Befehl überhaupt nichts verloren. Aber Du wolltest doch auch Files lesen, und nicht schreiben, oder?

Zitat:
Das i gibt mir die Anzahl der Bilder, files1an gibt mir die Namen der Bilder wieder und fd1an sollte doch die Werte des Bilder, also die Größe des Bildes und die Helligkweitswerte angeben. Wieso gibt mir Matlab hier -1 aus?

Huch?! Bitte lies nochmal die Dokumentation von SAVE durch. Es ist nicht klar, wieso Du nach diesem Code vermutest, etwas über die Größe des Bildes und die Helligkeitswerte zu finden.

Zitat:
Jedoch habe ich bei diesem Code das Problem, dass ich die Bilder in exakt diesem Pfad abgespeichert werden müssen.

Exakt in welchem Pfad?
UIGETFILE bestimmt auch den Pfadnamen. Du musst ihn später nur verwenden, statt ih nzu ignorieren:
Code:
fullfile(pathName, fileName{k})

Gruß, Jan

Dies ist aber für mich blöd, da ich für jeden dieser 4 Ordner eine eigene Matrix mit diesen Bildern benötige.

Wer kann mir dabei weiterhelfen?[/quote]
Private Nachricht senden Benutzer-Profile anzeigen
 
Chrissy

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2015, 10:58     Titel:
  Antworten mit Zitat      
Vielen Dank für die schnelle Antwort. Ich habe es mittlerweile mit dem zweiten Code, dne ich verwendet habe, hinbekommen.
Ich hatte generell ein paar Sachen im Code durcheinandergewordne.
Dankeschön Smile
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.