2011-02-06 2 views
1

Je veux obtenir la couleur la plus importante d'une image, et la langue peut être soit en python ou le rubis.reconnaissance des couleurs de l'image, la couleur générale

Est-ce facile à faire?

+1

Oui .. Non .. Peut-être .... – Shoban

+0

Vous devez fournir plus de détails: ce qui est une « couleur de premier plan »? Cherchez-vous une catégorie générale ("red-ish"), ou une valeur exacte ('rgba (243,32,17)')? Qu'en est-il des pixels qui sont très similaires en termes de valeur de couleur ou de teinte? – Phrogz

Répondre

1

Je ne sais pas si cela est ce que vous voulez dire, mais ce sera peut-être utile:

require 'rubygems' 
require 'RMagick' 
include Magick 

image = Image.read("stack.png")[0] 
hash = image.color_histogram 
color, number = hash.max{|a,b| a[1] <=> b[1]} 
puts color.to_color 

Cela a fonctionné comme un charme pour l'image très simple (seulement 5 couleurs), mais devrait travailler plus des images complexes aussi (je n'ai pas testé cela, le hash retourné sera assez grand dans ce cas, donc vous pouvez utiliser quantize sur votre image avant d'utiliser color_histogram).

Quelques ressources:

color_histogram quantize

J'espère que cela vous a été utile. :)

Questions connexes