图像颜色识别,通用颜色
我想从一张图片中提取出最明显的颜色,使用的编程语言可以是Python或者Ruby。
这个操作简单吗?
3 个回答
1
好的,让我来介绍一下Ruby的一个库。
使用Camellia这个库,你可以标记出颜色最明显的区域,具体可以参考这个链接:http://camellia.sourceforge.net/examples.html。
1
我不太确定这是不是你想说的,但Python的PIL库里有两个函数,分别是im.histogram()和im.getcolors()。你可以在这个链接找到更多信息:http://effbot.org/imagingbook/image.htm
1
我不知道这是不是你想要的,但也许会对你有帮助:
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
这个方法在处理非常简单的图片(只有5种颜色)时效果很好,但对于更复杂的图片也应该能用(我没有测试过;如果图片复杂,返回的哈希值会很大,所以你可能想在使用color_histogram之前先对图片进行量化处理)。
一些资源:
希望这些对你有用。:)