从图像中获取主色并丢弃背景

ast*_*nic 9 algorithm image colors

从图像中获取主色的最佳(结果,而不是性能)算法是什么.该算法应该丢弃图像的背景.

我知道我可以构建一个颜色数组以及它们在图像中出现的数量,但是我需要一种方法来确定背景是什么,前景是什么,并且在阅读主色时只记住第二个(前景) .

问题非常困难,特别是对于渐变背景或带图案的背景(不是普通的)

Dre*_*kes 8

将前景与背景隔离超出了这个特定答案的范围,但......

我发现对图像应用像素化滤镜会得出一组非常好的"平均"颜色.

之前

http://img12.imageshack.us/img12/825/pixelate1a.jpg

http://img12.imageshack.us/img12/8127/pixelate2.jpg

我有时会使用这种方法来获得具有特定情绪的颜色托盘.我首先找到一张照片,其中包含我正在使用的一般色调,像素化,然后从生成的图像中进行采样.

(感谢此页面显示通过Google图片搜索找到的图片)


Ale*_*ray 6

颜色摘要器是关于此主题的信息的一个非常好的地方,更不用说它们看似免费的XML Web API,它将为您选择的图像生成描述性颜色统计数据,使用HTML或XML格式报告以下格式. .

  • 我的图像中的平均色调,饱和度和值是多少?
  • 什么是最能代表图像的RGB颜色?
  • RGB和HSV直方图是什么样的?
  • 什么是图像的人类可读颜色描述(例如深蓝色)?

此实用程序的目的是生成元数据,该元数据汇总图像的颜色特征以包含在图像数据库中,例如Flickr.特别是此工具用于为Flickr的"颜色字段"组生成元数据.

在此输入图像描述

根据我的经验,这个工具仍然错过了"人类可读"/明显的"主要"颜色,很多时候.傻机!


Mus*_*sis 5

我会说这个问题比“非常困难”更接近“不可能”。我能想到的唯一方法是假设图像的背景可能由相似颜色的实心块组成,而前景则可能由较小的不同颜色的块组成。

如果这个假设通常是正确的,那么您可以根据像素与相邻像素的相似度或不相似度来扫描整个图像并加权像素。换句话说,如果一个像素的邻居(也许在某个任意半径之内)都是相似的颜色,则不会将该像素合并到整体估计中。如果邻居的颜色倾向于非常不同,则您可能会对像素进行加权,可能与差异程度成比例。

这可能无法完美运行,但肯定至少会排除大量类似颜色的物体。


avi*_*ldg 1

就我对图像处理算法的了解而言,没有特定的方法可以获得“前景”;只能获取对象之间的边界。您可能不得不使用平均值或您建议的数组计数方法。在这种情况下,您需要为饱和度较高的颜色提供较高的“分数”,因为它们更加突出。