使用OpenCV获取图像中最常见的颜色

3

你好,我正在使用Opencv,并希望通过x敏感性查找图像中出现最多的n种颜色。我该如何实现这个功能?是否有任何Opencv函数可以做到这一点?

谢谢!

*注意:这不是作业,我只是出于兴趣在使用Opencv!


2
不知道你所说的“x灵敏度”是什么意思,但你可以尝试使用kmeans()对最突出的颜色进行聚类。 - berak
比如说,我们想要将一种灰色和另一种灰色归类为相同的颜色。 - High schooler
有点像在绘画软件里使用魔术棒工具! - High schooler
嗯,是否也可以展示一些使用kmeans的示例代码或其他内容? - High schooler
1
请谅解我迄今为止还没有使用过Python,也许文档可以帮助。 - berak
好的,我会看一下。 - High schooler
2个回答

4
我会将图像转换到HSV颜色空间,然后计算H值的直方图。 接着,选取值最大的bins。

2
我猜您所说的“x灵敏度”是指您想量化图像。
您可以使用cv2.calcHist()来完成。如果不进行量化,直方图会很大(256*256*256)。 文档中的链接有一个示例,说明如何使用calcHist(C++中的示例,但在Python中几乎相同)。一旦您有了直方图,只需查找具有最大值的单元格即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接