输入列表中不存在中值?

时间:2019-04-22 06:37:20

标签: python numpy opencv

我发生了一些奇怪的事情,我试图在numpy数组中找到中间颜色。如果我在BGR / RGB颜色空间中工作,那么我会找到正确的中位数。如果我在LUV颜色空间中工作,那么我会得到不正确的中值,并且输入列表中甚至不存在找到的中值颜色。

为什么在LUV颜色空间中工作时得到的中位数不同/不正确?

以下显示了我在BGR中工作时发现的中位数(左),在LUV中工作时所发现的中位数(中)和输入/ src图像(右):

enter image description here

该棕色(中间)是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)

enter image description here

0 个答案:

没有答案