因为在研究车牌识别算法(plr),遇到了算法 处理的格式问题,可分三个常用格式:

0:rgb

1:bgr

2:yuv422——需要注意的是,这里为啥选yuv422做识别,当然还可选yuv444,最坏打算可选yuv420,主要是考虑颜色识别效果

  

  R代表红,red; G代表绿,green; B代表蓝,blue。RGB模式就是,色彩数据模式,R在高位,G在中间,B在低位。BGR正好相反。  如果色彩数据是24位,对于RGB模式,就是高8位是R,中间8位是G,低8位是B。一个色彩数据共24位,3个字节。  255-255-255 (unsigned char )

  opencv中矩阵是以BGR而不是RGB显示像素的大小,包括 Gamegear,不过其他的都 大部分采用rgb格式的

他们之间的转换如下:

引用了网友的一段(其实很简单的)

通过V4L得到了图像数据,但是保存为ppm,jpg格式时都出现了颜色失真,蓝色变成了红色,红色变成了蓝色,而保存为bmp格式时就没有问题。

经过摄像头采集的图像的通道排列顺序为BGR,而BMP文件的排列顺序也为BGR,所以保存成BMP文件使不会出现什么问题。
但是在显示器上显示的时候的排列顺序为RGB,所以如果需要显示的化,可以把BGR顺序颠倒一下。
如果你想保存为JPEG格式的文件,需要在压缩前将其顺序先按RGB排列,然后压缩再保存成JPEG格式的文件。
具体的转换方法为:
image_buffer = tmp = (unsigned char *)map + m_buf.offsets[frame];for(i =0;i<image_height;i++)for(j=0;j<image_width;j++){buf = *tmp;*tmp = *(tmp+2);*(tmp+2) = buf;tmp += 3;}
其中image_buf为采集的数据,在此只需要将指向R和B的指针互调一下就行,经过处理重新得到的image_buf为RGB排列
 

24bit 的bmp图像中rgb 实际排列顺序为bgr:

读取方法
(i,j)为象素坐标,左下为源点
SrcImageData为图像数据指针,指向图像数据首地址
nindex为当前象素离SrcImageData的偏移象素数
    for (j = 0; j < ImageHeight; j++)
    {
        for(i = 0; i < ImageWidth; i++)
        {
            nindex=((ImageHeight-j-1)*ImageWidth+i);
            SrcImageData[nindex*3+0] = 255;
            SrcImageData[nindex*3+1] = 0;
            SrcImageData[nindex*3+2] = 0;
        }
    }
按(255,0,0)赋值为蓝色,而按(0,0,255)则为红色
(0,0,0)为黑色(OK)。

http://www.360doc.com/content/12/0406/16/2036337_201444004.shtml

其他资料:

http://blog.csdn.net/xiaorui0328/article/details/1748229

水木社区http://www.newsmth.net/nForum/#!article/Graphics/49532?au=bitinf

bgr to rgb相关推荐

  1. CV2.imread得到的图像显示成蓝色的原因和3种BGR转RGB的方法

    新手使用CV2.imread后,直接显示,得到下面这种蓝色的图片,与原图差异很大: CV2的imread默认存储的颜色空间顺序是BGR,与matplot显示用的imshow的颜色顺序RGB正好相反,那 ...

  2. opencv python 把图(cv2下)BGR转RGB,且HWC转CHW

    img = cv2.imread("001.jpg") img_ = img[:,:,::-1].transpose((2,0,1)) ① 在opencv里,图格式HWC,其余都是 ...

  3. 【超直白讲解opencv RGB与BGR】RGB模式与BGR模式有什么不同,如何相互转换?

    一.为什么会有BGR和RGB两种通道? 首先RGB与BGR本质都没有什么区别,OpenCV和PIL读取图片的格式分别是BGR和RGB. 当我们使用OpenCV读取图像时,你应该也会发现读取的数组其实是 ...

  4. python BGR 转换为 RGB

    将 numpy.ndarray 类型的 BGR 转为 RGB: if __name__ == '__main__':image_path = '1.jpg'image = cv2.imread(ima ...

  5. BGR转RGB(python)

    BGR转RGB(python) 前言 BGR转RGB 总结 前言 使用cv2打开图片默认是BGR模式,而使用PIL显示图片时是RGB模式,如果不做转换,图片会出现色彩上的问题,例如: cv_img = ...

  6. OpenCV实现BGR转RGB

    一.问题 当使用opencv函数imread()读取图片时,颜色的顺序是BGR(blue.green.red),而Pillow的颜色顺序又是RGB,因此我们可能需要将BGR转RGB. 二.转换 可以通 ...

  7. bgr与rgb相互转换

    在opencv中的图像是以bgr形式存放的,但很多场景默认的是rgb形式的图像,这就导致实际应用中的颜色错乱,以下是bgr和rgb相互转换的函数: def rgb_bgr(r_color):r_col ...

  8. opencv:图像读取BGR变成RGB

    opencv大坑之BGR opencv对于读进来的图片的通道排列是BGR,而不是主流的RGB!谨记! #opencv读入的矩阵是BGR,如果想转为RGB,可以这么转 img = cv2.imread( ...

  9. opencv-python的格式转换 RGB与BGR互转

    opencv-python的格式转换 RGB与BGR互转 2018年04月17日 22:53:23 yuanlulu 阅读数:1753更多 个人分类: pythonopencv 版权声明:本文为博主原 ...

  10. NHWC BGR -> NCHW RGB

    Python代码 一行实现 NHWC BGR格式图片 转 NCHW RGB格式图片. 高效.简洁的python代码~,非常好,就是看的时候一眼扫过 容易忽略... # Read image img = ...

最新文章

  1. 剑指offer三十六之两个链表的第一个公共结点
  2. jquery.inputmask.js 输入框input输入内容格式限制插件
  3. python字符串和字节串有什么区别_对于Python中的字节串bytes和字符串以及转义字符的新的认识...
  4. openssl 测试加密卡_OpenSSL自带的aes_128_ecb加密函数——密文长度测试
  5. python dataframe分组求和,pandas datafram中按特定月份分组和求和值
  6. Spring AOP代理时 ClassCastException: $Proxy0 cannot be cast to (类型转换错误)
  7. 高等代数——大学高等代数课程创新教材(丘维声)——3.2笔记+习题
  8. android graphview使用与感受
  9. 5部靠身材和脸蛋撑起了整部电影,女主光环太刺眼,部部是经典!
  10. 使用HC05蓝牙模块实现数据无线传输,看完包会
  11. 如何做一份适用的定向地图
  12. 计算机软考地址,各省市计算机软考分数查询地址
  13. JavaScript解析json格式数据简单示例
  14. 视频聊天网站的研究、发展以及趋势(转)
  15. Flinksql insert overwrite 报错 requires that the underlying DynamicTableSink of table
  16. java 读取excel2007 内存不足_内存不足错误 – 写入Excel时的Java堆空间
  17. Vue的项目开发,你应该知道什么
  18. 阿里云、腾讯云、百度云、华为云哪家的性能最好?
  19. 暗黑血统2 android,暗黑血统2最新版
  20. 新年换家具入顶峰期 网友处置旧家具 只求拖走

热门文章

  1. python统计中文字数_Python实现统计文本文件字数的方法
  2. 深度学习框架PyTorch:入门与实践 学习(一)
  3. SVM入门(一)至(三)
  4. windows系统下使用git出现:warning: LF will be replaced by CRLF in
  5. android studio for android learning (二)
  6. AC自动机算法概述及习题
  7. 跟CSDN客服反馈的交流
  8. php实现先序、中序、后序遍历二叉树
  9. php数据类型之自动转换和强制转换
  10. 异步 Action 的定义