Я пытаюсь получить HSV, гистограмму LAB изображения, чтобы извлечь определенные функции, но на самом деле я не могу получить каких-либо точных результатов от моих функций, если гистограмма принимает во внимание черные пиксели областей, которые я замаскировал, как Могу ли я решить эту проблему, пожалуйста, любая помощь очень ценится.
Я работаю с питоном.
Вот пример изображения, а вот код, который я пытаюсь использовать. введите здесь описание изображения < / а>
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
hue = hsv_image[:,:,0].astype(float)
sat = hsv_image[:,:,1].astype(float)
val = hsv_image[:,:,2].astype(float)
hue[hue == 0] = np.nan
histr_lab = cv2.calcHist([hsv_image], [0], None, [255], [0, 255])
histr_lab1 = cv2.calcHist([hsv], [1], None, [255], [0, 255])
histr_lab2 = cv2.calcHist([hsv], [2], None, [255], [0, 255])
1 ответ
Попробуйте отфильтровать черные пиксели (val = 0) перед построением гистограммы, применив:
hue = hue[numpy.where(val > 0,True,False)]
sat = sat[numpy.where(val > 0,True,False)]
val = val[numpy.where(val > 0,True,False)]
В вашем случае при вычислении гистограммы попробуйте:
cv2.calcHist(hsv_image[np.where(val > 0,True, False)], [1],None, [255], [0, 255])
Похожие вопросы
Новые вопросы
opencv
OpenCV (Open Source Computer Vision) - это библиотека для компьютерного зрения в реальном времени. При использовании этого тега, пожалуйста, укажите версию OpenCV, с которой вы работаете (например, 3.4.6), и добавьте языковой тег (python, c ++, ...) при необходимости.