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

Erstellte zeros(x,y,'uint8')Matrix kann nicht gefüllt werde

 

Localhorst
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 18.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.04.2008, 14:01     Titel: Erstellte zeros(x,y,'uint8')Matrix kann nicht gefüllt werde
  Antworten mit Zitat      
Hallo Forum,

ich bin etwas ratlos, was ein Speicherverwaltungsproblem angeht.

Ich erstelle eine Matrix mit der zeros(....,'uint8') Funktion.
(Mit Werten statt Variablen sieht der Befehl wie folgt aus)

Code:

re_img= zeros(22645,21165,'uint8');
 


Nachdem ich das 'uint8' dazu genommen habe, funktioniert das erstellen dieser leeren Matrix auch.

Nur das füllen der Matrix mit unit8 Werten klappt leider nicht komplett, da läuft mir das script aus dem Memory.

Ich befülle die Matrix mit folgendem Codeschnipsel. Wobei ix1:ix2, iy1:iy2 über eine Schleife die jeweiligen Stellen der Matrix beschreibt, die mit den Werten aus dem Tiff Bild gefüllt werden sollen.
Code:

re_img(ix1:ix2, iy1:iy2) = imread(tiff_datei_mit_uint_grau_werten);
 


Ich dachte, wenn ich eine Matrix mit unit Werten generiere ist deser Speicherplatz reserviert, egal, ob nur zeros drin stehen, deswegen dachte ich auch das das füllen mit unit8 Werten auf jeden Fall geht.

Kennt einer das Problem, oder kann mir meinen Denkfehler zeigen?

MfG
Localhorst
Private Nachricht senden Benutzer-Profile anzeigen


Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 30.04.2008, 14:09     Titel:
  Antworten mit Zitat      
Hallo,
im Prinzip machst Du es richtig. Allerdings ist re_img mit 457 MByte nicht gerade winzig. Wie groß sind denn die Bilder, die Du lädst? Es könnte sein, dass mit der Erstellung von re_img nicht mehr viel Speicher übrig bleibt. Probier mal
Code:
feature memstats

vor und nach Erzeugung von re_img.
Insbesondere der Eintrag "Largest Contiguous Free Blocks:" ist von Interesse.

Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
Localhorst
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 18.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.04.2008, 15:45     Titel:
  Antworten mit Zitat      
Hi,

danach hatte ich bereits geschaut. Zu Beginn habe ich ca 900mb zusammenhängenden Speicher. (Also das größte Stück)

In dieses Stück wird dann meine zeros() Matrix erstellt.

In dem ersten Durchlauf der Schleife habe ich noch 3-5 a ca 120-170 mb große Stücke die zusammenhängen. Die Teilbilder die ich dazu einlese sind 255x255 Pixelx groß, also extrem klein und sollten auf keinen Fall ein Problem verursachen.

Wird der Speicherplatz mit den entsprechenden bits beim erstellen der uint Matrix reserviert? Ich denke nicht, denn sonst sollte das komplette befüllen mit uint8 Werten möglich sein.
Private Nachricht senden Benutzer-Profile anzeigen
 
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 - 2024 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.