【问题标题】:Masking image data using values generate from a histogram in OpenCV使用从 OpenCV 中的直方图生成的值屏蔽图像数据
【发布时间】:2011-10-25 08:34:43
【问题描述】:

鉴于我从图像中获得的生成直方图,我想知道是否有任何优化的方法来生成蒙版。下面我添加了 3 个不同的图像:要使用的参考、参考的直方图数据以及我想要屏蔽的主图像。我知道我可以通过每个像素来做到这一点,并将颜色信息改变一定的百分比,这样我也可以通过光照变化来获得颜色。

其基本思想是根据直方图数据在一定范围内找到一种颜色,如果找到任何颜色,则将其变为黑色。如果它没有找到任何东西,则颜色将为白色。

任何建议将不胜感激。

参考图片:

直方图值:

要遮罩的图像:

【问题讨论】:

    标签: c image-processing opencv mask histogram


    【解决方案1】:

    您想要的是在一定范围内屏蔽颜色,这是您应该尝试使用我在此处发布的代码: 在我的例子中,它是用来让它透明的,如果你想让它变黑,只需跳过 cvNot() 步骤...

    Making a color completely transparent in OpenCV

    希望对你有所帮助, 朱利安

    PS:我刚刚看到你是问我回答的关于如何使颜色透明的问题的人:这里的问题完全相同......只需稍微调整一下答案......

    • 1) 转换图像 RGB -> HSV : cvtColor()
    • 2) 生成直方图:calcHist()
    • 3) 在 Hue 直方图中找到最大值:minMaxLoc()
    • 4) 选择此最大值附近的阈值:您的函数
    • 5) 使用它们仅选择您想要的颜色:inRange()
    • 6) 将此遮罩设为黑色:您的功能(一种非常简单的方法是移除遮罩上的所有 RGB 组件):您的功能

    【讨论】:

    • 你总是在那里救援。非常感谢:)
    【解决方案2】:

    尝试使用模板匹配方法而不是直方图,例如标准化互相关http://www.mathworks.com/products/demos/image/cross_correlation/imreg.html

    【讨论】:

    • 不幸的是模板匹配只能到此为止。我在这里提出的只是一个简单的测试示例。
    猜你喜欢
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    • 2010-10-03
    • 2012-09-12
    • 2012-08-14
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多