方法1:数组切片的方法进行调转
img = cv2.imread("cat.jpg")[:,:,::-1]
ax = plt.imshow(img)
- 对于一张图来说,是一个三位的向量, W ∗ H ∗ C W * H * C W∗H∗C ,其中 C C C 是通道数,这个切片的操作,是保留 W ∗ H W * H W∗H 操作不变,对第三个维度的操作进行反转即: [ : : − 1 ] [::-1] [::−1],这样 C C C 中包含的 B,G,R 就变成 R,G,B 了
- 大家可以试一下这个操作,比如:
方法2:opencv 自身的方法进行调转
img_rgb = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
方法3:opencv 分离通道后重新组合
b,g,r = cv2.split(img)
img_ = cv2.merge([r,g,b])
plt.imshow(img)
演示
- B,G,R 的演示效果
- R,G,B 的演示效果