首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EmguCV颜色识别

EmguCV颜色识别
EN

Stack Overflow用户
提问于 2011-11-07 01:15:57
回答 1查看 2.5K关注 0票数 2

我在试着写一个程序来检测魔方的颜色

这就是我到目前为止所运行的屏幕截图,我基本上使用了emguCV附带的边缘检测示例的代码,并用它来检测小立方体(但你可以看到一些小立方体没有被检测到,但这不是我想在这里讨论的问题)。

现在在找出小立方体的位置后,我想要检测它们是什么颜色,目前我使用HSV值来决定颜色,如下所示:

代码语言:javascript
复制
if (current_colour.Hue > 120 && current_colour.Hue < 170)
{
     Colours[(int)colornames.W]++;
}
else if (current_colour.Hue > (170))
{
     Colours[(int)colornames.R]++;
}
else if (current_colour.Hue > 5 && current_colour.Hue < 20 )
{
     Colours[(int)colornames.O]++;
}
else if (current_colour.Hue > 47 && current_colour.Hue< 60)
{
     Colours[(int)colornames.G]++;
}
else if (current_colour.Hue > 15 && current_colour.Hue < 30)
{
     Colours[(int)colornames.Y]++;
}
else if (current_colour.Hue > 100 && current_colour.Hue < 110)
{
     Colours[(int)colornames.B]++;
}

我使用photoshop从试错中得到的每种颜色的值在哪里…我相信肯定有更好的方法,因为我得到的结果是混乱的(特别是与白色和红色)有帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-06 11:05:40

如果你的图像和你的例子一样简单,你可以在图像上做一个直方图。直方图中的峰值将与您使用的颜色相对应。

所以你必须做一个或三个直方图,取最高的10个(或其他) bin值,它们彼此之间的距离足够远,然后你就有了你的颜色。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8028802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档