cv2.imread()读取图像的坑

在图像处理中, 经常会用到cv2这个库, 其中cv2.imread()可以用来读取图像。 有一个容易忽略的细节是, cv2.imread()默认的通道排布是BGR, 而我们通常的图像是RGB排布的。 需要注意转换一下, 不然读出来的图像跟我们需要的不一致。

import matplotlib.pyplot as plt
import cv2
img = cv2.imread(img_path)
plt.imshow(img)
plt.show()

显示如下:

可以看出, 因为通道排列不对, 显示的图像不正常。

改变通道排列之后, 显示正常。

import matplotlib.pyplot as plt
import cv2
img = cv2.imread(img_path)
img = img[:,:,::-1] # convert BGR to RGB
plt.imshow(img)
plt.show()

你可能感兴趣的:(基础知识,计算机视觉,opencv,图像处理)