Verfasst am: 03.07.2014, 15:25
Titel: große Bilddaten in Matlab verwalten/nutzen/speichern
Ich arbeite an einem 32bit Windows Rechner.
In Matlab muss ich RAW-Bilder (jeweils eine Größe von 50 MB) auswerten.
Nach meinen Testaufnahmen habe ich ca. 400 RAW Bilder á 50 MB, die ich erstmal ganz normal auf der Festplatte speichere.
Nacheinander muss ich die Bilder auswerten, jedoch brauche ich immer 19 Bilder auf einmal. Diese 19 Bilder speichere ich in einem STRUCT ab.
Hier stoße ich an das "Out of memory" Problem. Der Rechner gibt irgendwann eine Fehlermeldung mit "out of memory" aus. Der Befehl "clear" reicht nicht, um genug Speiche freizugeben, ich muss Matlab neu starten.
13 Bilder kann ich auf einmal verarbeiten, bei 19 meckert er immer.
Wie kann ich das Problem lösen?
Besteht die Möglichkeit nur Pfade abzuspeichern?
Code:
% Struct um Bildparameter abzuspeichern
bilder = struct('abzug',[],'lambda',[],'winkel',[]);
% über eine for-schleife lade ich nacheinander Raw Bilder in das struct
bilder(y).abzug = ('Raw-Bild');
% ich erzeuge mir ein zweites struct, um die Raw-Bilder aufzuteilen in RGGB % Pixel
rgbSep = struct( 'r',[], 'gr',[], 'gb',[], 'b',[], 'lambda',[], 'winkel',[]);
% über eine Schleife extrahiere ich die einzelnen RGGB Kanäle. In der Schleife lösche ich danach den Inhalt des Structs "bilder"
bilder(k).abzug = [];% Bild auf Grund von Speicherproblemen wieder löschen
rgbSep(k).lambda = bilder(k).lambda;
rgbSep(k).winkel = bilder(k).winkel;
end;
ein paar Möglichkeiten:
- nicht alle Bilder gleichzeitig in den Speicher laden. Meist braucht man ja nicht mehr als zwei gleichzeitig.
- die Bilder in geringerer Auflösung verwenden (resize)
- Datentyp uint8 statt double (falls nicht ohnehin schon)
- auf 64 bit umsteigen und mehr Speicher.
Grüße,
Harald
Einstellungen und Berechtigungen
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
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.