图像颜色识别,通用颜色

1 投票
3 回答
1301 浏览
提问于 2025-04-16 11:18

我想从一张图片中提取出最明显的颜色,使用的编程语言可以是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之前先对图片进行量化处理)。

一些资源:

color_histogram quantize

希望这些对你有用。:)

撰写回答