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

print-Befehl speichert Daten nicht obwohl in fig angezeigt

 

atreidis
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 22.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.05.2012, 15:23     Titel: print-Befehl speichert Daten nicht obwohl in fig angezeigt
  Antworten mit Zitat      
Hallo allerseits,

folgendes Problem. Ich habe eine in ein rgb umgewandelte 2048x2048 Matrix die ich mit imshow oder image darstelle. Über diese lege ich mit image eine weitere 2048x2048 Daten-Matrix teilweise transparent drüber, so dass ich ein überlagertes Bild bekomme. Dieses in der figure Umgebung korrekt angezeigte figure möchte ich jetzt als jpg abspeichern. Leider speichert es zwar die colorbar aber weder das Bild selbst noch die Achsen ab (siehe Bilder im Anhang). An der Stelle, wo sich da Bild befinden soll, ist alles leider weiß.
Handelt es sich bei meinen Daten um eine 1024x1024 Matrix oder kleiner entstehen keine Probleme.
Versuche dieses Problem über position, papsersize etc. zu lösen sind bisher fehlgeschlagen (matlab Datei screen2jpeg verwendet; gefunden über google). Ich kann das Bild solange korrekt abspeichern, bis ich das zweite Bild teilweise transparent mache.

Die wichtigsten code Zeilen lauten:

Code:

im2=ind2rgb(test2,gray); %test ist hier meine 2048x2048 matrix für das
                                      %erste Bild
%Matrix für transparenz erzeugen
hilf=Ra;                          %Ra sind die Daten des zweiten Bildes  
                                      %2048x2048
hilf(hilf<c_ende/15)=0;    %alles < clim/15 vollständig transparent
hilf(hilf~=0)=0.6;            %Rest 60%
fg=figure;
imshow(im2,'InitialMagnification',33); %verkleinert darstellen, so dass es
                                                       %auf Bildschirm passt  ==> keine
                                                       %Fehlermeldung

set(gca,'ydir','normal')
hold on
h=image(Ra_bild{iter},'CDataMapping','scaled');
set(gca,'ydir','normal')
set(gcf,'color','w')
xlim('manual');
set(gca,'xtickmode','manual','xlim',[start ende],'xtick',[start... ende],'xticklabel',[start_um;ende_um],'tickdir','out','box','off');
set(gca,'xminortick','on','linewidth',2,'ticklength',[0.02 0.025],'xcolor','b')

set(h,'AlphaData',hilf,'AlphaDataMapping','none') %für Transparenz
colorbar
xt=xlabel(xtitel);
print(gcf,'-djpeg', '-r500','test.jpg')     %die Zeile, die nicht funktioniert
 



Für jede Hilfe bin ich sehr dankbar, da auch ein manuelles abspeichern über export-setup in der figure-Umgebung das selbe falsche Ergebnis liefert und somit auch keine Option ist.

screen2jpeg.jpg
 Beschreibung:

Download
 Dateiname:  screen2jpeg.jpg
 Dateigröße:  334.58 KB
 Heruntergeladen:  603 mal
print.jpg
 Beschreibung:

Download
 Dateiname:  print.jpg
 Dateigröße:  864.45 KB
 Heruntergeladen:  593 mal
figure-Umgebung.jpg
 Beschreibung:

Download
 Dateiname:  figure-Umgebung.jpg
 Dateigröße:  366.05 KB
 Heruntergeladen:  674 mal
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 22.05.2012, 23:22     Titel: Re: print-Befehl speichert Daten nicht obwohl in fig angezei
  Antworten mit Zitat      
Hallo atreidis,

Transparenzen benötigen OpenGL. Dieser Renderer hat Schwierigkeiten mit der Print-Ausgabe, wenn die Pixel-Größen kleiner sind als die Bildschirm-Pixel.

Wie wäre es, statt des Einblendens des teilweise transparenten Images auf dem Bildschirm, das entstehende Image explizit auszurechnen? Transparenz bedeutet ja eigentlich nur, den gewichteten Mittelwert der Pixel zu bilden.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
atreidis
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 22.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.05.2012, 11:07     Titel:
  Antworten mit Zitat      
Hallo Jan,

vielen Dank.
Manchmal sieht man den Wald vor lauter Bäumen nicht, wenn man sich so auf eine Lösung des Problems eingeschossen hat Wink .
An die direkte Berechnung hab ich gar nicht gedacht, funktioniert aber einwandrei.

Viele Grüße
(ebenfalls) 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.