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

Bilder mit variablem Dateinamen speichern

 

imwrite

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.08.2010, 11:46     Titel: Bilder mit variablem Dateinamen speichern
  Antworten mit Zitat      
Hi,

ich habe eine Matrix mit Werten 0 bis 255 jetzt möchte ich dieses GW-Bild abspeichern.
Da ich eine for-Schleife durchlaufe, soll dem Name der Bilddatei der Zusatz Iterationsnummer zb. img(Iterationsnummer).bmp angehängt werden und als bmp oder png abgespeichert werden.
Wie mache ich das?
Zusätzlich würde ich auch gerne den Speicherpfad angeben.

Ich habe mit imwrite() rumgefummelt komme da aber leider nicht so klar.

Mfg


boondock85
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 08.12.08
Wohnort: Stuttgart
Version: 2007b
     Beitrag Verfasst am: 09.08.2010, 12:56     Titel:
  Antworten mit Zitat      
Hi, ich weiß nicht was du mit GW-Bild meinst (Grauwerte)? Ist das in einer figure? Wenn ja:
Code:

f = figure(1);plot(x,-y1,'r',x,y2,'b'); % Hier eben das GW-Bild erzeugen
filename = ['Pfad\Plot_' int2str(idx) '.jpg'];  % idx ist deine Laufvariable der Schleife
saveas(f,filename)


Reicht das?
Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
imwrite

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.08.2010, 13:13     Titel:
  Antworten mit Zitat      
ok also mit GW meine ich Grauwert.

Das Bild steckt in einer Matrix img, der Größe 640x480 und soll als Datei abgelegt werden

Der Beispielcode führt bei mir dazu, dass zwar das Bild gespeichert wird allerdings zentriert in einem viel größeren Bild 900x500.
-> die Dimension des neuen Bildes soll aber der DImension der Matrix entsprechen.

Mfg
 
imwrite

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.08.2010, 13:23     Titel:
  Antworten mit Zitat      
ich versuche es bisher so:

... und erhalte dann leider nur ein weißes Bild.

Code:
filename = [source_out 'out' int2str(fileNo) '.bmp'];
imwrite(img, filename, 'bmp');


Mfg
 
boondock85
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 08.12.08
Wohnort: Stuttgart
Version: 2007b
     Beitrag Verfasst am: 09.08.2010, 13:25     Titel:
  Antworten mit Zitat      
wie würdest du denn das Bild von Hand speichern? Bzw. wie erstellst du das Bild? Also die Daten stecken in einer Matrix...
Weil die Erstellung des variablen Bildnamen ist ja damit erledigt?
Private Nachricht senden Benutzer-Profile anzeigen
 
imwrite

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.08.2010, 13:29     Titel:
  Antworten mit Zitat      
.. ja der Variable Bildname ist klar.

also anzeigen lasse ich es mir so:
Code:
imshow(img, [0 255]);
 
boondock85
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 08.12.08
Wohnort: Stuttgart
Version: 2007b
     Beitrag Verfasst am: 09.08.2010, 13:31     Titel:
  Antworten mit Zitat      
kannst mal ein Beispiel hochladen? Also dass ich bei mir so ein GW-Bild erstellen kann? Also was ist der Inhalt von img?
Private Nachricht senden Benutzer-Profile anzeigen
 
imwrite

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.08.2010, 13:39     Titel:
  Antworten mit Zitat      
so wird es erzeugt:

Code:

v = [1:255];
img = ones(255,1)*v;
 
 
LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.08.2010, 14:01     Titel:
  Antworten mit Zitat      
Hallo,

ändere den Datentyp auf uint8, dann sollte es klappen.
Wenn der Datentyp double ist, müssten Deine Grauwerte zwischen 0..1 liegen.

Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
boondock85
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 08.12.08
Wohnort: Stuttgart
Version: 2007b
     Beitrag Verfasst am: 09.08.2010, 14:14     Titel:
  Antworten mit Zitat      
Code:
f = figure(1);

v = [1:255];
img = ones(255,1)*v;
imshow(img, [0 255]);
set(gca,'Units', 'pixels')
axpos = get(gca, 'position');
outerpos = get(gca, 'outerposition');
insetpos = get(gca, 'tightinset');
set(gca, 'position', [0 0 ...
    outerpos(3)-insetpos(3) outerpos(4)-insetpos(4)]);
% set(gca, 'position', [0 0 500 500]);
saveas(f,'Beispiel.jpg');

Also du musst irgendwie mit den Positionen rumspielen. Hab grad leider nicht mehr Zeit danach zu schauen.

Vielleicht hast du ja nun einen Ansatz!
Private Nachricht senden Benutzer-Profile anzeigen
 
imwrite

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.08.2010, 14:33     Titel:
  Antworten mit Zitat      
verstehe ich nicht!
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 09.08.2010, 15:06     Titel:
  Antworten mit Zitat      
Lieber Gast,

imwrite hat Folgendes geschrieben:
verstehe ich nicht!

Das mag sein.
Wenn Du eine konkrete Frage stellst, könnten wir auch versuchen, Dir zu helfen. Was verstehst Du denn nicht?

IMWRITE ist schon der richtige Ansatz. Zeige doch mal, was Du damit versucht hast und wo die Probleme dabei lagen.

Gruß, Jan
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 - 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.