首页 > 解决方案 > 我想在 Opencv C++ 的图像中找到主色

问题描述

我是 openCV 的新手,并且从过去两周开始进行搜索,但所有答案要么在 python 中,要么不那么准确。我只是想在任何图像中找到颜色的最大数量。我尝试转换为 HSV 平面,然后循环图像并提取色调通道,然后增加范围内每种颜色的计数。但这种方法根本不准确。所以寻找更好的解决方案。

标签: c++11colorsopencv3.1

解决方案


通过查看从 RGB 到 HSV的颜色转换,我认为您可以执行以下操作:

黑色: V低于25S低于100
白色: V高于230S低于30
红色: H低于15或高于165
黄色: H介于15-45
绿色: H介于45-75
青色: H介于75-105
蓝色: H介于105-135
洋红色: H介于135-165

您可以通过缩小H通道来添加更多颜色,或者通过为颜色指定阴影来添加更多颜色,例如,如果45 < H < 75,则为 ,为深绿色,为 为V < 128浅绿色128 < V。在任何情况下,您都需要区别对待黑白。这些SV值只是​​示例,您甚至可以为它们提供功能。在灰色阴影之后检查其他颜色。


推荐阅读