2016-07-12 17 views
0

Ich verwende MATLAB 2015. Ich möchte die Anzahl der Bildfarben reduzieren. Ein RGB-Bild wird mit dem K-Means-Algorithmus segmentiert. Dann werden die mittleren Farben durch die Farben ersetzt, die ich habe.Wie ersetze ich die passenden Farben mit meiner eigenen Palette in MATLAB?

Die Farben sind (10),

schwarz - [255, 255, 255],

gelb - [255, 255, 0],

orange - [255, 128, 0],

weiß - [255, 255, 255],

pink - [255, 153, 255],

lav Ender - [120, 102, 255],

braun - [153, 51, 0],

green - [0, 255, 0],

blue - [0, 0, 255 ],

rot - [255, 0, 0].

Ich habe erfolgreich das Bild geclustert. Clusterbilder sollten durch die nächste Farbe ersetzt werden. Wie kann ich diese Farben nach dem Clustering ändern?

+1

sehen, ob das hilft: http://stackoverflow.com/questions/29889707/displaying-kmean-result-with-specific-colors-to-specific-clusters – beaker

Antwort

0

Falls Sie mit MATLAB keinen Weg finden, können Sie die Farben in einem Bild in der Befehlszeile mit ImageMagick neu zuordnen, das auf den meisten Linux-Distributionen installiert ist und auch für OSX und Windows verfügbar ist.

Zuerst würden Sie ein Farbfeld in Ihrer Palette erstellen. Sie müssen dies nur offensichtlich einmal tun:

convert xc:black   xc:yellow    xc:"rgb(255,128,0)" \ 
     xc:white   xc:"rgb(255,153,255)" xc:"rgb(120,102,255)" \ 
     xc:"rgb(153,51,0)" xc:lime xc:blue  xc:red    \ 
     +append colormap.png 

die wie folgt aussieht (erweitert):

enter image description here

Nun nehmen wir an, Sie haben ein Bild wie dieses Farbrad (colorwheel.png):

enter image description here

und Sie möchten Ihre Palette anwenden (dh die Farben neu zuordnen in Ihrem Swatch):

convert colorwheel.png +dither -remap colormap.png result.png 

enter image description here