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

gegebener Vektor -> Farbe bestimmen

 

consul
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 29.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.05.2013, 13:58     Titel: gegebener Vektor -> Farbe bestimmen
  Antworten mit Zitat      
Hallo,

ich habe momentan das Problem, dass ich aus einer gegebenen Reihe von Vektoren (z.B: v=rand(1,3); ) die Farben der einzelnen Vektoren bestimmen will!
Geht das überhaupt oder kann ich die Farben nur festlegen?

Ich möchte die Vektoren als Wichtungsfunktionen einer x und y Koord. zuweisen und in deren Abhängigkeit ausgeben...

Hat da jemand eine Idee?
Danke schonmal im Vorraus...

mfG consul
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 30.05.2013, 14:02     Titel:
  Antworten mit Zitat      
wie definierst du denn farbe ?
Private Nachricht senden Benutzer-Profile anzeigen
 
consul
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 29.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.05.2013, 14:08     Titel:
  Antworten mit Zitat      
hatte an die rgb gedacht...

z.B. rot als (1 0 0), grün (0 1 0), blau (0 0 1) und wollte diese mit einem Vektor vergleichen und somit die Farbe ermitteln...

geht das oder muss ich mir was anderes einfallen lassen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 30.05.2013, 14:12     Titel:
  Antworten mit Zitat      
das geht schon aber du must dir halt klar überlegen welche grenzen du setzt. wann ist es rot wann blau. das ganze kannst du dann mit if then abfragen oder logischer indizierung bearbeiten.
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: 30.05.2013, 14:45     Titel:
  Antworten mit Zitat      
Moin,

in deinem Vektor kann es keine Farben geben, also muss man Grauwerte colorieren. Das geht am einfachsten, wenn man dem Rotkanal alle Werte unter 0.33, dem Grünkanal alle Werte zwischen 0.33 + 0.66 und dem Blaukanal alle Werte zwischen 0.66 + 1 zuordnet. Dann über "cat" alle zu einem Farbbild zusammenfügen und mit imagesc ausgeben.

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

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 29.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.05.2013, 17:40     Titel:
  Antworten mit Zitat      
Hallo Hubertus,

danke dir und Winkow für die schnelle Antwort!
Ich hab es probiert und bin am verzweifeln...
Wie kann ich die Farbkanäle definieren?
So wie ich bei der MatLab Hilfe verstanden habe kann ich das nur über das editieren der figure machen!?

Ich würde das und die Farbzuweisung gerne in einer Subroutine machen.
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: 30.05.2013, 18:02     Titel:
  Antworten mit Zitat      
Verzweifeln ist nicht gut!

Code:
v=rand(1,30);
R=v<.33;
G=v>.33&v<.66;
B=v>.66;
x=cat(3,R,G,B);
imagesc(x)
Private Nachricht senden Benutzer-Profile anzeigen
 
consul
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 29.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2013, 17:44     Titel:
  Antworten mit Zitat      
Danke nochmal Hubertus,

war aber nicht genau das was ich gesucht habe...
Habe es nun selber lösen können!
Da es eine Subroutine ist bekomme ich als Übergabewert eine Wichtungsmatrix mit double-Werten der Form (3xn). (im Bsp n=16)
Die Matrix habe ich dan in Vektoren der Form (3,1) zerlegt die jeweils eine bestimmte Farbe darstellen.

Code:

clear all;

%% Darstellung eines 4x4 Netzes
% jedem Kästchen des Netzes soll eine zufällige Farbe zugeordnet werden

anzahl=16; % Anzahl der Kästchen im Netz
W=rand(3,anzahl); % Wichtungsmatrix für die zufälligen Farben
% jeder "Farbvektor" der Form (a b c) mit Elementwerten von 0-1

% Kantenlänge des Netzes
edgeLength = sqrt(anzahl); % gilt nur solange wie quadratischer Input in Anzahl...
% mein Netz soll in dem Bsp die gleichen Kantenlängen haben

%% initialisieren des Netzes mit Nullen
% Kantenlänge 4x4
% 3.Dimension der Matrix entspricht den Farbstufen RGB (rot, grün, blau)
% 'uint8' legt einen 8Bit Datensatz fest (Zahlen von 0-255)
bildchen = zeros([edgeLength edgeLength 3],'uint8');

%% einsortieren der Farbvektoren ins Netz
% mit temp wird jeder Farbvektor einzeln aus der Wichtungsmatrix
% genommen und in das Datenformat uint8 gebracht
for i=1:edgeLength    
    temp = W(:,(i-1)*edgeLength+1:i*edgeLength);
    temp = uint8(round(temp*255));
    for j=1:edgeLength
        bildchen(i,j,:) = temp(:,j);
    end
       
end


%% VISU
%%% For beautiful visualization JUST for DEBUGGING
% festlegen des Ausgabebildes
% Position in Zentimetern auf dem Bildschirm festlegen
grafik = figure('Units','centimeters','Position',[5 5 10 10]);

% skalieren der Achsen
% Achsen verknüpfen mit dem Ausgabebild, Einheiten auf Zentimeter skalieren
% Ursprung der Achsen im Ausgabebild festlegen
% Skalierung der Farben mit (min, max)Werten hier (0, 255) festlegen
axes00 = axes('Parent',grafik,...
              'Units','centimeters',...
              'Position',[1.0 1.0 8.0 8.0],'CLimMode','manual','CLim',[0 255]);

%%% VISUALIZATION for DEBUGGING PURPOSE image(row,col,colormap)
% Ausgabe des Farbnetzes im Ausgabebild
imagesc(bildchen,...
    'CDataMapping','direct','Parent',axes00);
axis image;

 
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: 01.06.2013, 19:29     Titel:
  Antworten mit Zitat      
Hallo consul,

gute Lösung! Es ist immer gut, wenn man sich informiert und dann doch seinen eigenen Weg geht!!!!

Ein schönes Wochenende und eine erfolgreiche Woche!
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.