4 ms·
Couldn't this be achieved with imagemagick's builtin blur + histogram?
by jlhonora 11y ago
Couldn't this be achieved with imagemagick's builtin blur + histogram?
- deleted 11y ago[deleted]
- e12e 11y agoDon't know if this is the best way to do it, but reading a bit[1] as well as looking at comments above about color spaces, I came up with: #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 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.com/e12e/7990e56f48ceff5506d7/raw/d5d65b3ea49d09a9234b94c2e43d6263b6524cbf/index.html 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] [1] http://www.imagemagick.org/Usage/quantize/#extract http://www.imagemagick.org/Usage/quantize/#extract