我发生了一些奇怪的事情,我试图在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)