Я использую функцию calcHist()
из OpenCV в Python для генерации гистограмм Hue для изображений HSV
Однако я хочу, чтобы функция могла игнорировать пиксели с ~ 0% или ~ 100% (черно-белый соответственно) или ~ 0% насыщенности (серый). Есть идеи? Заранее спасибо.OpenCV- игнорирование пикселей при создании гистограммы оттенков
2
A
ответ
2
Функция calcHist
принимает параметр mask
. Вы можете создать маску с указанными вами свойствами и передать ее функции. Я предлагаю вам создать что-то анализировать пиксели один раз ... но простой способ сделать это было бы:
h,s,v = cv2.split(img)
mask = (v == 0) + (v == 100) + (s == 0)
mask = numpy.logical_not(mask)
Затем вы можете использовать матрицу маски в функции. Он будет игнорировать пиксели с ложным значением. Я использовал это в C++, поэтому не уверен, будет ли ложное значение работать, или если вам нужны целые числа, как в версии C++ ... в худшем случае просто добавьте еще одну дополнительную строку mask *= 1
, и все будет готово.
Надеюсь, это поможет.
Я использую OpenCV в Python, поэтому я не знаком с синтаксисом C++. В вашей второй строке кода «+» представляет логический или? – user3396592
@ user3396592, который на самом деле является кодом python ... он работает как логический или – api55