您当前的位置:首页 > 计算机 > 精彩资源

RGB图像转换为BGR

时间:01-28来源:作者:点击数:

为什么要使用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表示将第三维倒序排列。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门