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

export_fig bei Überlagerung von Foto und contour

 

laupl
Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 15.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.11.2015, 16:13     Titel: export_fig bei Überlagerung von Foto und contour
  Antworten mit Zitat      
Hallo,
ich überlagere ein Foto mit einem Contourplot. Funktioniert soweit auch wunderbar. Wenn ich den Plot nun aber mittels export_fig (http://www.mathworks.com/matlabcent.....exchange/23629-export-fig) speichern möchte, passiert folgendes: Ohne eine Einschränkung des sichtbaren Bereiches mittels axis, sieht das abgespeicherte jpg aus wie erwartet. Begrenze ich den sichtbaren Bereich nun aber mit axis, ist das Foto im gespeicherten jpg nicht mehr zu sehen. Dort sehe ich nun nur noch den Contourplot. Warum? Bzw. kann ich dieses Verhalten irgendwie abstellen?

Code:

img=imread('beispielbild.jpg');

[x,y]=meshgrid(2000:3000,2000:3000);
z=peaks(length(x));

figure
imagesc(img)
axis image
hold on
[~,hcon]=contourf(x,y,z,linspace(min(z(:)),max(z(:)),20),'EdgeColor','none');
get(gcf,'Renderer');
ch=get(hcon,'child');
alpha(ch,0.1)
export_fig('gut.jpg','-transparent')

figure
imagesc(img)
axis image
axis([2000 3000 2000 3000]) % wird der Ausschnitt aktiviert, sieht man im gespeicherten jpg das Foto nicht mehr. Warum?
hold on
[~,hcon]=contourf(x,y,z,linspace(min(z(:)),max(z(:)),20),'EdgeColor','none');
get(gcf,'Renderer');
ch=get(hcon,'child');
alpha(ch,0.1)
export_fig('schlecht.jpg','-transparent')
 


Bei kleineren Fotos passiert das übrigens nicht. Aber die Fotos, die ich verwende, sind nunmal so groß. Verkleinern ist keine Option.

Danke, Grüße

beispielbild.jpg
 Beschreibung:

Download
 Dateiname:  beispielbild.jpg
 Dateigröße:  2.56 MB
 Heruntergeladen:  430 mal
Private Nachricht senden Benutzer-Profile anzeigen


laupl
Themenstarter

Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 15.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.11.2015, 08:12     Titel:
  Antworten mit Zitat      
Habe seit heute eine neue Matlabversion (2015b) und jetzt scheint der alpha-Befehl überhaupt nich mehr zu funktionieren. Jetzt sehen beide Plots schon als matlab-figure falsch aus. Der contour-plot wird überhaupt nicht mehr transparent. Ist das ein bekanntes Problem? Kann das jemand so bestätigen? Davor hatte ich 2012b.

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
laupl
Themenstarter

Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 15.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.11.2015, 08:49     Titel:
  Antworten mit Zitat      
Das scheint tatsächlich ein bekanntes Problem zu sein. http://www.mathworks.com/matlabcent.....ransparancy-on-a-bar-plot
Leider habe ich noch keinen Workaround für mein Problem gefunden. Bin dankbar für Tips.
Wie kann es eigentlich sein, dass eine Funktionalität in einer neueren Version nicht mehr verfügbar ist Question
Private Nachricht senden Benutzer-Profile anzeigen
 
laupl
Themenstarter

Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 15.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.11.2015, 10:57     Titel:
  Antworten mit Zitat      
Probleme gelöst Very Happy

Code:

img=imread('beispielbild.jpg');

[x,y]=meshgrid(2000:3000,2000:3000);
z=peaks(length(x));


figure
imagesc(img)
axis image
hold on
[~,hcon]=contourf(x,y,z,linspace(min(z(:)),max(z(:)),20),'EdgeColor','none');
drawnow;
hFace=hcon.FacePrims;
for idx=1:numel(hFace)
   hFace(idx).ColorType='truecoloralpha';
   hFace(idx).ColorData(4)=150;
end
export_fig('gut.jpg','-transparent')


figure
imagesc(img)
axis image
axis([2000 3000 2000 3000])
hold on
[~,hcon]=contourf(x,y,z,linspace(min(z(:)),max(z(:)),20),'EdgeColor','none');
drawnow;
hFace=hcon.FacePrims;
for idx = 1:numel(hFace)
   hFace(idx).ColorType='truecoloralpha';
   hFace(idx).ColorData(4)=150;
end
export_fig('auchgut.jpg','-transparent')
 


Das funktioniert jetzt in 2015b. Außerdem klappt das mit dem Abspeichern nun auch.

Danke an alle, die sich Gedanken gemacht haben.
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.