#shell:
for space in sRGB RGB HSV LAB
do
# I think it should be possible to do this without writing
# tiff-images to disk in-between -- but having a look at the
# resulting images next to the original is actually quite nice
# gives some idea of the differences colorspace makes:
convert akira_800x800.jpg -quantize $space +dither \
-colors 4 akira_lab_$space.tiff
echo "Histogram in $space colorspace:"
convert akira_lab_$space.tiff -format %c histogram:info:-
echo
done
Output: Histogram in sRGB colorspace:
123498: ( 5811, 4253, 6632) #16B3109D19E8 srgb(8.86702%,6.48966%,10.1198%)
110248: (17780,16101,19392) #45743EE54BC0 srgb(27.1305%,24.5686%,29.5903%)
47520: (34608,35255,34146) #873089B78562 srgb(52.8084%,53.7957%,52.1035%)
47534: (47890,19471,10567) #BB124C0F2947 srgb(73.0755%,29.7108%,16.1242%)
Histogram in RGB colorspace:
182611: ( 45, 40, 51) #2D2833 srgb(45,40,51)
76221: ( 93, 86,100) #5D5664 srgb(93,86,100)
36583: (139,119,124) #8B777C srgb(139,119,124)
33385: (218,125, 74) #DA7D4A srgb(218,125,74)
Histogram in HSV colorspace:
94957: ( 30, 13, 51) #1E0D33 srgb(30,13,51)
128709: ( 56, 52, 80) #383450 srgb(56,52,80)
37291: ( 60, 31, 10) #3C1F0A srgb(60,31,10)
67843: ( 78,155, 87) #4E9B57 srgb(78,155,87)
Histogram in LAB colorspace:
133802: ( 42, 41, 60) #2A293C srgb(42,41,60)
74332: ( 51, 72, 87) #334857 srgb(51,72,87)
42436: ( 88, 33, 27) #58211B srgb(88,33,27)
78230: (151,117, 89) #977559 srgb(151,117,89)
In fact, it became a bit of an obsession, and the hack evolved a bit:https://gist.github.com/e12e/7990e56f48ceff5506d7
I'm not sure if it actually does the same thing as the script in the post - but here's a sample output:
http://htmlpreview.github.io/?https://gist.githubusercontent...
Maybe someone with more knowledge of imagemagick can improve on the pipeline etc.
[ed: Just noticed that the sRGB output for "RGB" values is different enough that my script doesn't consider them to be RGB values (well, they're not) - so the line for sRGB is blank in the html. Still think it's interesting to see the difference between RGB/HSV/LAB.]
[ed2: Changing the number of colors to 3, to better compare with op, op's algorithm clearly chooses different colors. Not sure which is "best", but just FYI]