9 votes

Image Magick / Détecter les couleurs contenues dans une image

Quel serait le processus simple permettant d'obtenir un tableau des couleurs contenues dans une image ?

12voto

Jim Lindstrom Points 206

La commande "convert" d'ImageMagick peut générer un histogramme.

$ convert image.png -define histogram:unique-colors=true -format %c histogram:info:-

19557: (  0,  0,  0) #000000 gray(0,0,0)
 1727: (  1,  1,  1) #010101 gray(1,1,1)
 2868: (  2,  2,  2) #020202 gray(2,2,2)
 2066: (  3,  3,  3) #030303 gray(3,3,3)
 1525: (  4,  4,  4) #040404 gray(4,4,4)
   .
   .
   .

En fonction de la langue de votre choix et de la façon dont vous souhaitez que les couleurs soient représentées, vous pouvez prendre de nombreuses directions à partir de là. Voici cependant un exemple rapide en Ruby :

out = `convert /tmp/lbp_desert1.png \
               -define histogram:unique-colors=true \
               -format %c histogram:info:- \
       | sed -e 's/.*: (//' \
       | sed -e 's/).*//'`

out.split("\n")
    .map{ |row| row.split(",").map(&:to_i) }

# => [[0, 0, 0], [1, 1, 1], [2, 2, 2], [3, 3, 3], [4, 4, 4] .....

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X