RGB图像转换为BGR

为什么要使用BGR?

早前 windows 下,不管是摄像头制造者,还是软件开发者,当时流行的都是 BGR 格式的数据结构,后面 RBG 格式才逐渐开始流行,所以当时的 opencv 选择了使用 BGR 格式,这个是 opencv 在发展过程中的历史遗留问题。

而 Caffe 作为最早流行的代表,它又基于 opencv,所以也跟着使用了 BGR。

其实自己训练的时候完全可以使用 RGB,新库也不存在是 RGB 还是 GBR 这个问题。但如果使用的是别人训练好的模型,就要注意一下使用的是 RGB 还是 GBR。

RGB与BGR的转换

示例: 第 1 行第 1 列上的像素 R = 1,G = 2,B = 3,转换后 R = 3,G = 2,B = 1。

import numpy as np  
a = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]],[[13,14,15],[16,17,18]]])  
print(str(a.shape))  
print(str(a))  
a = a[:,:,::-1]   
# a = a.transpose((2,0,1))  
print(str(a.shape))  
print(str(a))  
# 转换前
(3,2,3)
[[[ 1  2  3]  
  [ 4  5  6]]  

 [[ 7  8  9]  
  [10 11 12]]  

 [[13 14 15]  
  [16 17 18]]]  
# 转换后
(3,2,3)
[[[ 3  2  1]  
  [ 6  5  4]]  

 [[ 9  8  7]  
  [12 11 10]]  

 [[15 14 13]  
  [18 17 16]]]  

总结: RGB 和 BGR 的转换可以直接使用 cvt = org[:,:,::-1] 来实现,前两个 : 表示第一第二维不变,::-1表示将第三维倒序排列。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不吃饭就会放大招

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值