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

Weißer Rand bei print() eines .eps Bildes

 

Ajax
Forum-Century

Forum-Century


Beiträge: 176
Anmeldedatum: 09.09.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.05.2011, 14:14     Titel: Weißer Rand bei print() eines .eps Bildes
  Antworten mit Zitat      
Hallo Zusammen,

ich stehe erneut vor einem mir schleierhaften Problem:
Vorliegen habe ich Graustufenbilder (unten image1 genannt), d.h. effektiv eine 2D Matrix, dessen Eintrage einer bestimmten Graustufe entsprechen sollen (wie bei einem Röntgenbild). Mit imagesc() werden diese Bilder angezeigt. Anschließend sollen sie abgespeichert werden. Hierbei entsteht ein weißer Rand um das Bild. Also habe ich mich durch einige Beiträge hier gelesen und heraus gefunden, wie dieser Rand entfernt und anschließend das Bild automatisch abgespeichert werden kann. Der Code hierfür ist unter gezeigt. Es funktioniert, solange ich die Bilder z.B. als .png abspeichere. Ersetze ich dies jedoch durch das .eps Format, erhalte ich oben und rechts einen weißen Balken. Wird das Bild als figure abgespeichert ist wie bei .png kein Balken vorhanden. Kann mir irgend jemand sagen woher der Balken kommt und wie ich diesen am Besten entfernen kann? Nachdem es bei den anderen Formaten funktioniert, bin ich ratlos.

Hier der Code:
Code:

figure; imagesc(image1);

set(gca, 'Visible', 'off');            % Achse ausblenden
set(gca, 'Position', [0 0 1 1]);      

set(gcf, 'Position', [50 50 size(image1, 2) size(image1, 1)]);  
set(gcf, 'PaperPositionMode', 'auto');

print('name.eps', '-depsc2');           % Bild exportieren
% Alternative ohne Balken
print('name.png', '-dpng');
 


Ich bin für jeden Hilfe sehr dankbar,
mit freundlichen Grüßen

Ajax
Private Nachricht senden Benutzer-Profile anzeigen


.seb
Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 05.05.11
Wohnort: Neubrandenburg
Version: 7.7.0 (R2008b)
     Beitrag Verfasst am: 23.05.2011, 17:27     Titel:
  Antworten mit Zitat      
Hallo,


schon folgendes versucht
Code:
set(gcf, 'PaperUnits','inches','PaperPosition',[0 0 1 1]);

?

Dann mit dem r-Parameter in der print-Funktion die DPI-Zahl wählen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Ajax
Themenstarter

Forum-Century

Forum-Century


Beiträge: 176
Anmeldedatum: 09.09.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.05.2011, 10:21     Titel:
  Antworten mit Zitat      
Hallo .seb,

erst einmal vielen Dank für deine Antwort. Sie hat mir zum Teil weiter geholfen, jedoch auch weitere Fragen seltsame Probleme hervor gebracht.
Ich habe - wie du vorgeschlagen hast - 'PaperUnits' und 'PaperPosition' verwendet sowie bei print() den r-Parameter variiert. Zusätzlich habe ich hier '-loose' sowie '-zbuffer' verwendet - letzteres, da er scheinbar ansonsten den r-Parameter ignoriert.
Mein Bild hat eine Auflösung von 128x128 Pixeln. Ich habe gelesen, dass die "standard"-Auflösung bei .eps 150 Pixel ist. Damit könnte ich mir evtl. die weißen Balken am Rand erklären. Was mich wundert ist, dass diese nicht erscheinen, wenn ich in meinem figure-Fenster direkt auf SaveAs --> als .eps gehe. (saveas() anstelle von print() zu verwenden führt jedoch zu dem selben Ergebnis wie print()).
Wenn ich jetzt mit dem r-Parameter spiele, dann führen erst sehr große Werte zu einem Ergebnis, welches dem direkten Abspeichern entspricht. Jedoch wird die Datei hierbei auch erheblich größer (11kB direktes abspeichern, mehrere MB bei Variation des r-Parameters). Das ist natürlich unerwünscht. Wähle ich den r-Parameter kleiner, dann sieht das Bild stark komprimiert aus - also verwaschen, unscharfe Ränder und sonstige Artefakte.
Irgendwie kann ich mir das alles nicht erklären da sowohl die Anzeige im figure-Fenster als auch das direkte abspeichern funktionieren.
Hast du evtl. noch eine weitere Idee bzw. habe ich etwas falsch verstanden und/oder falsch angewandt?
Vielen Dank noch einmal,
mfg

Ajax
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.