#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 является нелинейным … это означает, что медиана может отличаться от одного пробела к другому