Медианное значение не существует во входном списке?

#python #numpy #opencv

#python #numpy #opencv

Вопрос:

У меня происходит что-то странное, я пытаюсь найти медианный цвет в массиве numpy. Если я работаю в цветовом пространстве BGR / RGB, я нахожу правильную медиану. Если я работаю в цветовом пространстве LUV, я получаю неверную медиану, а найденный медианный цвет даже не существует во входном списке.

Почему я получаю другую / неправильную медиану при работе в цветовом пространстве LUV?

Ниже показана медиана, которую я нашел при работе в BGR (слева), медиана при работе в LUV (посередине) и изображение ввода / src (справа):

введите описание изображения здесь

Этот коричневый цвет (средний) — это медиана LUV, преобразованная в BGR. На изображении нет коричневого цвета?

Ниже приведен мой код и исходное изображение src:

 bgr = cv2.imread('../../images/red_blue_ex.png')
bgr_median = np.median(bgr, axis=(0,1))
swatch = np.full((25,25,3), bgr_median, dtype='uint8')
cv2.imshow('bgr_median', swatch)

luv = cv2.imread('../../images/red_blue_ex.png')
luv = cv2.cvtColor(luv, cv2.COLOR_BGR2LUV)
luv_median = np.median(luv, axis=(0,1))
swatch = np.full((25,25,3), luv_median, dtype='uint8')
swatch = cv2.cvtColor(swatch, cv2.COLOR_LUV2BGR) 
cv2.imshow('luv_median', swatch)

cv2.imshow('src', bgr)
cv2.waitKey(0)
  

введите описание изображения здесь

Комментарии:

1. В соответствии с этим преобразование BGR / RGB в LUV является нелинейным … это означает, что медиана может отличаться от одного пробела к другому