OpenCV系列 | BGR图像转换为RGB图像

目录

  • 方法一
  • 方法二

使用OpenCV加载图像时,默认使用BGR的格式,而使用matplotlib显示图像时又采用RGB的格式,因此显示图像时,会显得非常奇怪。

如以一张船的照片为例,原图如下:

OpenCV系列 | BGR图像转换为RGB图像_第1张图片
使用OpenCV进行读取:

import cv2
import matplotlib.pyplot as plt
import numpy as np
ship_BGR = cv2.imread('ship.jpg',cv2.IMREAD_COLOR)  # 第二个参数可以不写,默认值就是以彩色图像方式读取
plt.imshow(ship_BGR)
plt.show()

输出的图像结果:

OpenCV系列 | BGR图像转换为RGB图像_第2张图片
可以很容易发现,这和原图的颜色差的非常多,这一切原因都在于读取channel的顺序,因此需要改变channel顺序。

方法一

ship_RGB_1 = ship_BGR[:,:,::-1]  # BGR和RGB正好是顺逆序关系
plt.imshow(ship_RGB_1)
plt.show()

输出的图像结果:

OpenCV系列 | BGR图像转换为RGB图像_第3张图片

方法二

ship_RGB_2 = cv2.cvtColor(ship_BGR, cv2.COLOR_BGR2RGB)
plt.imshow(ship_RGB_2)
plt.show()

输出的图像结果:

OpenCV系列 | BGR图像转换为RGB图像_第4张图片
以上两种方法均适用于BGR图像转换为RGB图像,小伙伴们可根据自己的喜好各取所需。

你可能感兴趣的:(OpenCV,计算机视觉,opencv,python,深度学习,pytorch)