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

Bild als "Colormap" erstellen

 

eey
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 31.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.01.2013, 16:34     Titel: Bild als "Colormap" erstellen
  Antworten mit Zitat      
Hallo zusammen,

ich versuche momentan ein Image zu erstellen in dem alle Farben vorkommen sollen (also alle RGB Werte von 0-255). Davon gibt es ja insgesamt 256x256x256 Kombinationen, das Bild sollte also insgesamt 16777216 Pixel haben, bzw. als Matrix die Dimension 4096x4096x3 haben.

Das Ganze mache ich mit folgender Funktion:

Code:
function [ I ] = createColorMap( )

    % Variablen initialisieren
    counter = 0;
    spaltenCounter = 1;
    I_temp = zeros(4096,4096,3);
   
    % Gesamten Farbbereich erstellen
    for i=0:255
        for j=0:255
            for k=0:255
                counter = counter + 1;
               
                if mod(counter,4096) == 0
                    spaltenCounter = spaltenCounter + 1;
                    counter = 1;
                end
               
                I_temp(counter,spaltenCounter,1) = i;
                I_temp(counter,spaltenCounter,2) = j;
                I_temp(counter,spaltenCounter,3) = k;
            end
        end
    end
   
    % Ergebnis zurückgeben
    I = uint8(I_temp);
end
   


Das funktioniert soweit auch und ich bekomme ein sehr großes Bild, das Problem ist aber dass die Farben "gestreift" sind keine richtigen Farbbereiche haben (also erst blau dann grün etc.).

Zum besseren Verständnis habe ich mal ein Bild angehängt wie das Ganze momentan aussieht.

So sollte es aber wenn möglich aussehen (vom Prinzip her zumindest):

http://ursimon.musichall.cz/files/progs/hls_color/hls_map2.jpg

Weiß jemand wie man das erreichen könnte? Würde mich sehr über Hilfe freuen Smile

Schöne Grüße,
eey

color.png
 Beschreibung:

Download
 Dateiname:  color.png
 Dateigröße:  135.15 KB
 Heruntergeladen:  369 mal
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: 25.01.2013, 18:45     Titel:
  Antworten mit Zitat      
Moin,

eine einfache Lösung wäre:

Code:
bg = ind2rgb(repmat(1:256,256,1),jet(256));
figure; imshow(bg)


Vielleicht kann man auch damit etwas anfangen, kann das am Wochenende aber nicht prüfen:

Code:
R=repmat([1:1:256],256,1);
G=fliplr(repmat([1:1:256],256,1));
B=repmat([1:1:256],256,1);
C(:,:,1)=R;
C(:,:,2)=G;
C(:,:,3)=B;
C=uint8(C);
imshow(C)


Ich habe mich vom Bild leiten lassen oder willst du unbedingt alle Truecolor-Werte darstellen? Man könnte das Ergebnis auf deine Größe interpolieren.

Viele Grüße
Hubertus
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.