Verfasst am: 22.05.2012, 15:23
Titel: print-Befehl speichert Daten nicht obwohl in fig angezeigt
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.020.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.
Verfasst am: 22.05.2012, 23:22
Titel: Re: print-Befehl speichert Daten nicht obwohl in fig angezei
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.
vielen Dank.
Manchmal sieht man den Wald vor lauter Bäumen nicht, wenn man sich so auf eine Lösung des Problems eingeschossen hat .
An die direkte Berechnung hab ich gar nicht gedacht, funktioniert aber einwandrei.
Viele Grüße
(ebenfalls) Jan
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.