BGR 和 RGB 问题
image
本文字数:259 字 | 阅读时长 ≈ 1 min

BGR 和 RGB 问题

image
本文字数:259 字 | 阅读时长 ≈ 1 min

1. visdom

visdom 中的 vis.image(0) 是 RGB 的,并且通道是在第一位 (c, h, w)

2. cv2

cv2 中读入、保存图片的格式均为 np.arrayuint8255HWCBGR

cv2 读取的为 BGR 格式,但是大多数包都是要求为 RGB 格式,所以要对其进行转换,转换方法如下

转换方法 1:cv2.cvtColor

import cv2

img = cv2.imread('2.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow("img1.png", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
'''
此时的输出与原图不同
'''

转换方法 2:手写通道转换

import cv2

img = cv2.imread('2.jpg')
img1 = img.copy()    #改变img1的时候不改变img
img1[:,:,0] = img[:,:,2]
img1[:,:,1] = img[:,:,1]
img1[:,:,2] = img[:,:,0]   #cv2读取的是bgr,转换成rgb就要做一下变通
cv2.imshow("img1.png", img1)
cv2.waitKey(0)
cv2.destroyAllWindows()
'''
此时输出结果与方式1相同,但都与原图不同
'''

3. imageio

不同于 cv2 中的 BGR 通道,imageio 中读取图片的方式为 RGB

imageio 中读入、保存图片的格式均为 np.arrayuint8255HWCRGB

Mar 13, 2026
ufw
Mar 13, 2026
ufw
Dec 14, 2025