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

Gif Bilder haben roten Hintergrund

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.09.2010, 11:35     Titel: Gif Bilder haben roten Hintergrund
  Antworten mit Zitat      
Hallo,

ich möchte mir in einer GUI mehrere Bilder im GIF Format anzeigen lassen die ich vorher mit Photoshop so bearbeitet habe das der Hintergrund transparent ist, so dass ich mehrere Bilder übereinander legen kann.
Wenn ich die Bilder aber jetzt anzeigen lasse ist der Hintergrund rot statt transparent.

ich habe es schon mit
Code:

[a map]=imread('...');
image(a);
colormap(map);
 

versucht aber dann ist die Transparenz immer noch nicht gegeben und das Bild ist ziemlich pixelig.
Hat jemand eine Idee wie ich das hinbekomme?


Edit by denny: Bitte die Code-Formatierung verwenden. Danke!


Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 06.09.2010, 11:50     Titel:
  Antworten mit Zitat      
Moin,

ich glaube, dass Matlab keine "Transparenz", enbenso wie keine Alphakanäle aus Photoshop kennt. Es soll zwar eine Verbindung zu Photoshop geben, ich glaube, die heißt Matlab Extended, aber der imread-Befehl ist wohl der gleiche. Nachdme Du das Bild mit imread eingelesen hast, kannst Du Bereiche auf Transparenz setzen, in dem Du die gewünschten Werte auf "NaN" änderst oder die Bilder mit "alpha" übereinander legst.

Viele Grüße
Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.09.2010, 11:55     Titel:
  Antworten mit Zitat      
Hallo

meinst du dann sowas in die Richtung

colormap(1,2,NaN); ?

Damit hab ich gerade versucht das Resultat war das das Bild immer noch rot ist er mir aber die Axis wieder anzeigt.
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.09.2010, 11:56     Titel:
  Antworten mit Zitat      
Hallo

meinst du dann sowas in die Richtung

colormap(1,2,NaN); ?

Damit hab ich gerade versucht das Resultat war das das Bild immer noch rot ist er mir aber die Axis wieder anzeigt.
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 06.09.2010, 12:03     Titel:
  Antworten mit Zitat      
Es gibt ja nur die Möglichkeit der Pixelwerte zwischen 0 und 255, die immer Dichten erzeugen oder Pixelwerte mit "NaN", die keine Dichten erzeugen. Du müßtest die Pixelwerte ändern, nicht die colormap.
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.09.2010, 12:05     Titel:
  Antworten mit Zitat      
Ok damit funktioniert es leider auch nicht.
Gibt es denn keine Möglichkeit die Bilder so übereinander zu legen?
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 06.09.2010, 12:09     Titel:
  Antworten mit Zitat      
Das geht mit:

Code:
figure; imshow(..)   % Bild 1
hold on
imshow(..)  %Bild 2
hold off
alpha(0.5)
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.09.2010, 12:17     Titel:
  Antworten mit Zitat      
Ok danke damit sieht es schon besser aus.

Jetzt hab ich nur noch das Problem das meine Farb Bilder auf einmal in grau angezeigt werden.
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 06.09.2010, 12:25     Titel:
  Antworten mit Zitat      
Ein ähnliches Problem wird hier beschrieben:

http://www.gomatlab.de/2-bilder-ueb.....ne-zu-plotten-t10969.html

Allerdings werden hier ein Colorbild und ein Graustufenbild übereinender gelegt. Eine Funktion für 2 Colorbilder kenne ich leider nicht.
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: 06.09.2010, 13:16     Titel: Re: Gif Bilder haben roten Hintergrund
  Antworten mit Zitat      
Hallo Gast,

"help imread":
[A, Map, Alpha] = imread(...) returns the alpha channel.

R=IND2RGB(A, Map) produziert Dir aus der Index-Matrix A ein RGB-Array mit den korrekten Farben.
Den Alpha-Kanal kannst Du dann nutzen, um den Hintergrund einblenden zu lassen. E.g. für den Alpha-Wert 0.5 ist die Pixel-Farbe:
0.5*Background + 0.5*Pixel-Farbe

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 06.09.2010, 13:30     Titel:
  Antworten mit Zitat      
Hallo Jan S,

danke für den Hinweis auf "imread". Lange nicht mehr angesehen, weil das Problem nicht präsent war. Allerdings würde mich interessieren, ob ich auf den Alphakanal ein m*n*3 Colorbild einlesen kann, denn das wäre erforderlich um 2 (m*n*3) Bilder übereinander zu legen.

Viele Grüße
Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
dmjr
Forum-Century

Forum-Century


Beiträge: 199
Anmeldedatum: 02.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.02.2016, 19:39     Titel:
  Antworten mit Zitat      
imread hat beim lesen von GIF-Dateien mit Transparenz aus meiner Sicht mehrere Bugs. Die Transparenz wird beim Lesen nach etwas eigenartigen Regeln ersetzt. Ich hab mich gestern wegen einer ähnlichen Frage auf Stackoverflow dran gesetzt die Funktion neu zu implementieren. So wie ich gif verstanden habe, ist der Alphakanal der falsche Ansatz, weil es den eigentlich nicht gibt. Statt dessen wird einem index Transparenz zugewiesen.
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.