【问题标题】:OpenCV- ignoring pixels when generating a hue histogramOpenCV-生成色调直方图时忽略像素
【发布时间】:2016-08-09 22:49:34
【问题描述】:

我在 Python 中使用来自 OpenCV 的 calcHist() 函数为 HSV 图像生成色调直方图但是我希望该函数能够忽略具有 ~0% 或 ~100% 亮度的像素(黑白分别)或〜0%饱和度(灰色)。有任何想法吗?提前致谢。

【问题讨论】:

    标签: python opencv numpy histogram hue


    【解决方案1】:

    calcHist 函数接受 mask 参数。您可以使用您提到的此属性创建一个掩码并将其传递给函数。我建议你创建一个分析像素一次的东西......但一个简单的方法是:

    h,s,v = cv2.split(img)
    mask = (v == 0) + (v == 100) + (s == 0)
    mask = numpy.logical_not(mask)
    

    然后你可以在函数中使用你的掩码矩阵。它将忽略具有错误值的像素。我在 c++ 中使用过这个,所以我不确定 false 值是否会起作用,或者你是否需要像 c++ 版本一样的整数......在最坏的情况下,只需添加另一行 mask *= 1 就可以了。

    希望这会有所帮助。

    【讨论】:

    • 我在 Python 中使用 OpenCV,所以我不熟悉 C++ 语法。在您的第二行代码中,“+”是否代表逻辑或?
    • @user3396592 这实际上是 python 代码......它的工作原理是逻辑或
    猜你喜欢
    • 1970-01-01
    • 2014-09-30
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多