ast*_*nic 9 algorithm image colors
从图像中获取主色的最佳(结果,而不是性能)算法是什么.该算法应该丢弃图像的背景.
我知道我可以构建一个颜色数组以及它们在图像中出现的数量,但是我需要一种方法来确定背景是什么,前景是什么,并且在阅读主色时只记住第二个(前景) .
问题非常困难,特别是对于渐变背景或带图案的背景(不是普通的)
将前景与背景隔离超出了这个特定答案的范围,但......
我发现对图像应用像素化滤镜会得出一组非常好的"平均"颜色.
之前
http://img12.imageshack.us/img12/825/pixelate1a.jpg
后
http://img12.imageshack.us/img12/8127/pixelate2.jpg
我有时会使用这种方法来获得具有特定情绪的颜色托盘.我首先找到一张照片,其中包含我正在使用的一般色调,像素化,然后从生成的图像中进行采样.
(感谢此页面显示通过Google图片搜索找到的图片)
我会说这个问题比“非常困难”更接近“不可能”。我能想到的唯一方法是假设图像的背景可能由相似颜色的实心块组成,而前景则可能由较小的不同颜色的块组成。
如果这个假设通常是正确的,那么您可以根据像素与相邻像素的相似度或不相似度来扫描整个图像并加权像素。换句话说,如果一个像素的邻居(也许在某个任意半径之内)都是相似的颜色,则不会将该像素合并到整体估计中。如果邻居的颜色倾向于非常不同,则您可能会对像素进行加权,可能与差异程度成比例。
这可能无法完美运行,但肯定至少会排除大量类似颜色的物体。
就我对图像处理算法的了解而言,没有特定的方法可以获得“前景”;只能获取对象之间的边界。您可能不得不使用平均值或您建议的数组计数方法。在这种情况下,您需要为饱和度较高的颜色提供较高的“分数”,因为它们更加突出。