方法1和方法2实现的效果是一样的:
import cv2
import numpy as np
# 方法1
img=np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]]).astype(np.uint8)
print('BGR\n',img)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
print('RGB\n',img)
img = np.moveaxis(img, -1, 0)
print('2*2*3 to 3*2*2\n',img)
# 方法2
img=np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]]).astype(np.uint8)
print('BGR\n',img)
img = img[:, :, ::-1]
print('RGB\n',img)
img = img.transpose(2, 0, 1)
print('2*2*3 to 3*2*2\n',img)
运行结果:
BGR
[[[ 1 2 3]
[ 4 5 6]]
[[ 7 8 9]
[10 11 12]]]
RGB
[[[ 3 2 1]
[ 6 5 4]]
[[ 9 8 7]
[12 11 10]]]
223 to 322
[[[ 3 6]
[ 9 12]]
[[ 2 5]
[ 8 11]]
[[ 1 4]
[ 7 10]]]
BGR
[[[ 1 2 3]
[ 4 5 6]]
[[ 7 8 9]
[10 11 12]]]
RGB
[[[ 3 2 1]
[ 6 5 4]]
[[ 9 8 7]
[12 11 10]]]
223 to 322
[[[ 3 6]
[ 9 12]]
[[ 2 5]
[ 8 11]]
[[ 1 4]
[ 7 10]]]