Hi,
hab ne Matrix gegeben mit Werten von 0 bis 12. Jedem Wert würde ich nun gerne eine einzelne Farbe zuordnen.
Z.b.:
0=weiß
1=gelb
2=rot
3=blau
4=grün
etc.
ginge das mit ner colorbar ?
und am besten mit find() die einzelnen Werte einfärben ?
jaein,
geht das net "direkter", das man halt wie oben beschrieben den einzelnen Werten direkt ne Farbe zuordnet.
Handelt sich halt um ne Klassifizierung von einem Bild und da ich durch sequentielles vorgehen immer neue Bilder ausgegeben kriege möchte ich net immer rumschrauben müssen an jedem einzelnen Pic
D.h. z.B. das ich gerne Wasserflächen direkt blau angezeigt haben möchte, n Wald grün, n Maisfeld gelb usw.
Jo, das habe ich mir irgendwie gedacht. Ich sitzte hier vor einem Phänomen.
Um Bereiche farbig zu machen, benötigt man eine m*n*3 Matrix. Da könnte man Bereiche in einem Kanal indizieren. Das funktioniert auch, wenn mein Bild mit reinen Graustufen als RGB-Bild aus Photoshop kommt. Wenn ich das gleiche Bild in Matlab von m*n auf m*n*3 setze (I2=cat(3,I,I,I) oder auch
mit: repmat(I,[ 1 1 3]) zum Colorbild ändere, funktioniert das nicht. Das hat auch nichts mit im2double oder double zu tun. Das geht einfach nicht!! Was ist an einem 3-dimensionalen Matlab-Bild anders als an einen Photshop-Bild?
Warum das trotz absetzen des gleichen Codes mehrmals nicht funktionierte ist mir völlig unklar. Irgendwas geht hier eigene Wege. Versuche mal folgendes:
Code:
I=imrad('cameraman.tif'); % m*n figure; imshow(I)
I2=repmat(I,[113]); %m*n*3
R=I2(:,:,1); % Rotkanal
ind=(R>60) & (R<170); % Bereich von bis
Y=R;
Y(ind)=55; % auf diesen oder anderen Wert indizieren.Ändern sich Farben
G=I2(:,:,2);
B=I2(:,:,3);
RGB=cat(3,Y,G,B);
figure; imshow(RGB)
Ich hoffe, das funktioniert bei Dir, sonst bitte melden. Du müßtest dann in den anderen Kanälen die FArben zuordnen. Ein bischen aufwendig. Vielleicht postet einer noch eine schnellere Lösung.
das sieht schonmal gut aus, nur bräuchte ich nun vielmehr Farben..wie wäre da die Matrix
ich bräuchte:
0=weiß
1=grün
2=orange
3=gras grün
4=braun
5=schwarz
6=sonnen gelb
7=türkis
8=blau
9=rot
10=dunkelgrün
11=dunkleres gelb (n schmutziges)
12=grau
wäre das möglich ? wenn ja wie sieht die dazugehörige "Farbmatrix" aus
hmm, keiner ne Idee ? Schade..
mit den normalen colormaps isset alles so "eintönig"
sollte sich schon mehr voneinander abheben alles..
ist halt für ne Klassifizierung
Mit den Ideen ist das so ein Sache. Wir haben Dir 2 Wege beschrieben, die sehr unterschiedlich sind. Ich weiß nicht, was Du vorhast. Es gibt ja die Möglichkeit, bestimmten Grauwerten, bestimmte Farben zuzuordnen. Ob das Sinn macht, gleiche Grauwwerte mit unterschiedlichen Farben darzustellen, mußt Du beantworten. An ind2rgb habe ich natürlich auch gedacht. Das ist naheliegend. Wenngleich ich noch nicht herausgefunden habe, wie die Farbwerte zu den Grautönen zugeordnet werden. Bei der Übergabe der Beispiel an unterschiedliche Graubilder habe ich leider nichts brauchbares gefunden. das zeigt aber nur, dass in den Graubildern bestimmte Differenzen vorhanden sein müssen, damit dasd Verfahren gelingt. Das große Problem ist immer, Verfahren auf unterschiedliche Bilder zu übertragen. Ganz schlecht ist es, wenn man die Bilder nicht kennt.
Die Matrix dazu kannst Du natürlich mit Deinen Farbvorgaben anpassen. Nimm Dir einfach die dazugehörigen RGB-Werte aus einer Farbtabelle (die hat nichts mit Matlab zu tun) und rechne die Werte auf den Bereich zwischen 0 und 1 um.
Gast
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 15.04.2011, 11:07
Titel:
Hallo,
Wenn ich das richtig verstehe, hast du ne Matrix mit Werten von 0 bis 12.
Dann könnte du das wie folgt machen
Code:
%eigene Colormap
C =[ 1.00001.00001.0000 00.39220 1.00000.27060 0.48630.98820 0.54510.27060.0745 000 1.00001.00000 01.00001.0000 1.000000 0.33330.41960.1843 0.93330.86670.5098 0.50000.50000.5000]
M=randi(13,100)-1; %100x100 Matrix mit Werten von 0 bis 12 imshow(M+1,C);
Ja, genau. Das ist wäre der Weg. Aber fliegen die Farben einfach so im Bild herum oder kann ich den Farben bestimmte Grauwerte zuordnen? Wahrscheinlich sollen die Farben, ähnlich in der Kartografie, bestimmte Aussagen machen - oder soll das einfach nur bunt aussehen???
soll wie gesagt ne Klassifikation sein von nem Luftbild.
speziell: Ich hab nen Random Forest Algorithmus gegeben, den wende ich zunächst als Training an, und später aufs gesamte bild dann nochmal.
dann sollte man ja ein Bild vorher haben (ohne classification) und nacher mit, so dasset bisschen aussieht wie Malen nach Zahlen.
Z.b. werden dann alle Waldregionen grün angezeigt, nen See blau, n Maisfeld gelb usw.
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.