BGR to RGB排列

BGR to RGB排列

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

猜你喜欢

转载自www.cnblogs.com/bwdblogs/p/10820480.html
今日推荐