BGR to RGB排列

2012年09月27日 13:59:48 雷电羊 阅读数:4759
 

https://blog.csdn.net/cjsycyl/article/details/8024703

通过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排列。

BGR to RGB排列的更多相关文章

  1. bgr to rgb

    因为在研究车牌识别算法(plr),遇到了算法 处理的格式问题,可分三个常用格式: 0:rgb 1:bgr 2:yuv422——需要注意的是,这里为啥选yuv422做识别,当然还可选yuv444,最坏打 ...

  2. [OpenCVsharp]利用指针实现高速访问像素RGB值

    先简单介绍下什么是OpenCVsharp,内容取自百度百科 OpenCvSharp是一个OpenCV的.Net wrapper,应用最新的OpenCV库开发,使用习惯比EmguCV更接近原始的Open ...

  3. cv2.imread BGR模式

    openCV 的cv2.imread()导入图片时是BGR通道顺序,这与Matplotlib的显示,或者读取图片的通道不同,如果需要可以转换为RGB模式,以下代码显示不同之处,但BGR在许多地方使用, ...

  4. OLED屏幕那些次像素有趣的排列方式

    http://www.dzsc.com/data/2016-6-2/109856.html 我们今天的重点内容为倒数第二列内容的上半部分,也就是RGB排列和Pentile排列.在介绍OLED屏幕时候我 ...

  5. RAW RGB格式

    RAW RGB格式 10bit Raw RGB, 就是说用10bit去表示一个R, G, 或者B, 通常的都是用8bit的. 所以你后面处理时要把它转换为8bit的, 比较简单的方法就是将低两位去掉, ...

  6. 将Mat类型转换成QImage类型

    ui 头文件 #ifndef DIALOG_H #define DIALOG_H #include <QDialog> #include<opencv2/highgui/highgu ...

  7. 第一节,初识OpenCV3-图像的读、写、显、格式转化等

    之前一直在看深度学习,突然用到了对图像处理的东西,所以过来补充一下OpenCV基础. 就顺便从网上了买了一本OpenCV 3计算机视觉这本书,这本书比较薄,但是目前已经够我用了,在这里就记录一下我的学 ...

  8. [OpenCV-Python] OpenCV 核心操作 部分 III

    部分 III核心操作 OpenCV-Python 中文教程(搬运)目录 9 图像的基础操作 目标 • 获取像素值并修改 • 获取图像的属性(信息) • 图像的 ROI() • 图像通道的拆分及合并几乎 ...

  9. [OpenCV]OpenCV常用语法函数与坑点

    目录 1. 加载图像(cv::imread) 2. 显示图像(cv::nameWindows与cv::imshow) 3. 修改图像(cv::cvtColor) 4. 保存图像(cv::imwrite ...

随机推荐

  1. SpringMVC 配置文件详解

    HandlerMapping    处理器映射 HTTP请求被DispatcherServlet拦截后,会调用HandlerMapping来处理,HandlerMapping根据 url<=&g ...

  2. pagehelper 分页不生效,总页数总是1解决方案

    问题: 后台查询后的数据只有1页,已经设置了PageHelper也没用 PageHelper.startPage(pageNum,pageSize); ModelAndView mv=new Mode ...

  3. Python3.5学习之旅——day4

    本节内容 1.装饰器 2.迭代器与生成器 3.内置方法 4.软件目录结构规范 一.装饰器 装饰器是一个用来装饰其他函数的工具,即为其他函数添加附加功能,其本质就是函数. 装饰器需要遵循的以下两个原则: ...

  4. eclipse下用maven插件+Mabatis-generator生成mybatis的文件

    1. 配置Maven pom.xml 文件 在pom.xml增加以下插件: <build> </plugins> ... <plugin> <groupId& ...

  5. HTML常用标签效果展示

    HTML常用标签效果展示 一.文本效果 段落1---收到了开发建设看来得更加快乐圣诞节福利肯定是减肥的路上苏里科夫就是打开了飞机都是风口浪尖上的疯狂了大煞风景圣诞快乐的索科洛夫几点上课了关键是低空掠过 ...

  6. VS误删sln项目文件怎么办

    以项目名为Test为例 打开Test/Test目录下的 Test.vcxproj 文件,试着运行一下,退出后提示保存sln文件,选择一个目录即可.

  7. LXML解析html代码和文件

    from lxml import etree text = """ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1. ...

  8. 5 HTML脚本&字符实体&URL

    HTML脚本: 用<script>标签定义客户端脚本,比如JavaScript script元素即可包含脚本语句,也可以通过src属性指向外部脚本文件 JavaScript常用于图片操作. ...

  9. HDU1029 简单DP

    "OK, you are not too bad, em... But you can never pass the next test." feng5166 says. &quo ...

  10. Python环境搭建-2 编译器和解释器

    编译器与解释器 编译器/解释器:高级语言与机器之间的翻译官 都是将代码翻译成机器可以执行的二进制机器码,只不过在运行原理和翻译过程有不同而已. 那么两者有什么区别呢? 编译器:先整体编译再执行 解释器 ...