Я пытаюсь получить 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
Moustafa 13 Июл 2020 в 15:23

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])
1
Michamei 13 Июл 2020 в 13:34