Opencv与Matplotlib图片颜色展示不一致

网上找到的车牌图片如下:蓝色底。
Opencv与Matplotlib图片颜色展示不一致_第1张图片
当使用opencv和matplotlib分别展示读取的图片的时候,发现展示的颜色不一致。
Opencv与Matplotlib图片颜色展示不一致_第2张图片
网上查到了相关资料,opencv库中读取图片颜色通道为BGR,而plt.imshow读取通道为RGB。正是因为读取通道的顺序不同,导致了展示的不同。
Opencv与Matplotlib图片颜色展示不一致_第3张图片

然后我想把每个通道都拿出来,分别展示B/G/R图片。opencv中提供了split方法用来将通道进行分割,又提供了merge进行通道合并。

img000 = cv.imread('test002.jfif') # shape -> (127, 396, 3) 
B, G, R = cv.split(img000)  # B, G, R shape -> (127, 396) 
zeros = np.zeros(img000.shape[:2], dtype='uint8') # 创建空数组备用 shape -> (127, 396)
BLUE = cv.merge([B, zeros, zeros]) # shape -> (127, 396, 3)
GREEN = cv.merge([zeros, G, zeros])
RED = cv.merge([zeros, zeros, R])
cv.imshow('BLUE', BLUE)
cv.imshow('GREEN', GREEN)
cv.imshow('RED', RED)
cv.waitKey(0)

可以看到确实根据通道的不同所展示的颜色不同。
Opencv与Matplotlib图片颜色展示不一致_第4张图片

你可能感兴趣的:(机器学习,opencv,matplotlib,python)