【问题标题】:Detect Object Color Various Lighting OpenCV Java检测对象颜色各种照明 OpenCV Java
【发布时间】:2017-06-07 03:01:18
【问题描述】:

我想创建一个简单的 openCV 应用程序,它能够在各种光照条件下准确地检测红色(想想红色独奏杯)。

哪种颜色空间最适合使用(RGB、HSV 等),我应该如何实现这样的东西?

我是使用 openCV 的新手,这将是我的第一个项目,因此任何示例都将不胜感激。

有一些用于检测的示例,但没有一个说明颜色如何根据强光、阴影、弱光等呈现不同的阴影和色调,以及如何对此进行补偿。

我计划在嵌入式项目中使用它,这样我就可以有一个光电二极管来检测环境光的数量,如果这些信息有帮助的话......

谢谢!

【问题讨论】:

  • 没有确定的色彩空间可以很好地满足您的目的,但您可以从HSVYCrCB 色彩空间开始,看看哪个更适合您。

标签: java opencv embedded


【解决方案1】:

所以,我找到了一个很好的解决方案。我从本教程开始:

http://opencv-java-tutorials.readthedocs.io/en/latest/08-object-detection.html

它允许您动态移动 HSV 值,以便您可以尝试不同的照明条件。因此,在那之后,我能够找出最适合不同条件的值。接下来,我将允许程序根据我的实验结果一点一点地更改 hsv 值,以期找到杯子。

当程序找到一个感觉足够好的物体时,它会在它周围绘制轮廓。

编辑:通过增加“模糊”的数量,我能够更有效地检测到物体。

抱歉,如果我使用了错误的术语。我是新手。

【讨论】:

    【解决方案2】:

    试试this tutorial project。它以最简单的方式使用 OpenCV 检测颜色:

    # find the colors within the specified boundaries and apply
    # the mask
    mask = cv2.inRange(image, lower, upper)
    output = cv2.bitwise_and(image, image, mask = mask)
    

    它是 Python,但代码很简单,足以说明它是如何工作的。

    用你的设置首先得到的图片试试这个。第一次尝试既快速又简单。

    在您弄乱照明之前,检测红色相当简单。到那时,问题可能会像the dress 这样变得非常棘手。

    因此,在您有机会了解它如何影响您的设置之前,最好忽略该问题。您的照明限制可能很简单(例如明亮与暗淡的图片),也可能很复杂(例如在黑暗中染成蓝色,在明亮光线下染成黄色)。

    【讨论】:

      猜你喜欢
      • 2016-10-17
      • 1970-01-01
      • 2021-08-29
      • 2013-05-05
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      相关资源
      最近更新 更多