【问题标题】:Getting Hue value from the peaks in histogram opencv从直方图opencv中的峰值获取色调值
【发布时间】:2019-05-13 18:28:14
【问题描述】:

我正在尝试使用矩形检测的颜色信息。我的一些矩形是重叠的并且是多色的。我找到了一种使用色调值检测这些矩形的解决方案。我正在使用颜色的色调值检查 inRange

  • 橙色 0-22
  • 黄色22-38
  • 绿色 38-75
  • 蓝色 75-130
  • 紫130-160
  • 红色 160-179

,但我不知道确切的颜色是什么。例如,在一个图像中,矩形可以是橙色、红色、蓝色,而在另一个图像中,它可以是其他颜色。

我试图查看直方图,但我会得到一个不仅是白色或黑色的背景。因此,直方图令人困惑。

如果你能给我一些关于如何处理这个问题的想法,我将不胜感激。

【问题讨论】:

  • 可能会发布一些示例图片。矩形占据屏幕的哪个部分?你能用一些形态过滤器去除它们吗?背景是结构化的还是单色的?
  • 请张贴有代表性的图片。

标签: c++ opencv image-processing histogram


【解决方案1】:

您可以尝试蛮力方法,尝试所有颜色范围,然后使用 findcontours (example) 查看是否可以找到可能是矩形的轮廓。如果背景非常嘈杂,您可以使用最小尺寸的轮廓 (contourArea)。您还可以通过将轮廓区域除以minAreaRect 的区域来检查solidity,矩形(具有良好检测)的结果应该接近1。

这是否可行取决于几个因素,重叠的矩形会很快破坏它。

【讨论】:

  • 我的想法与您提到的类似。打算试试这种方法。
【解决方案2】:

所以如果我理解正确的话,你有各种各样的图像,每个图像都包含多个可以是各种不同颜色的矩形,并且图像的背景是不统一的,你试图分割出使用直方图的矩形?

使用直方图进行图像分割最适用于具有统一背景的灰度图像,因此在看到直方图中的透视图后,您就知道要分割的对象的主要强度。这种方法不能很好地转化为您的应用程序,因为您尝试分割的形状在阴影中是不均匀的,没有看到示例图像我可能会说这不起作用,但是您可能能够逃脱如果矩形的阴影变化相对相似......基本上,如果你有 15-30 的矩形,你可能会没事,但如果它们在 20-100 之间变化,你就会不走运,同样如此背景的变化。

如果背景和矩形具有非常明确的边界,并且背景颜色过渡非常平滑,则您可以摆脱在背景上生长的某种区域以获得所有背景像素的列表然后将它们设置为黑色或其他东西,以便更好地分析前景中的矩形,但我只能根据您在帖子中提供的信息进行推测

【讨论】:

    猜你喜欢
    • 2014-05-03
    • 2014-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    • 2016-06-20
    • 2011-01-09
    • 2012-07-01
    相关资源
    最近更新 更多