RasPi Cam C++ API - 图像颜色

RasPi Cam C++ API - Color of image

我刚刚尝试了 here 的 RaspiCam C++ API,但我的照片颜色太蓝了:

命令制作的照片raspistill -o rcapture.jpg: 有点太红了,不过比第一个好看多了

第一张照片由this示例制作

我的目标是通过C++得到正常颜色的图像API

Juanpalma 建议的此问题的最终解决方案是更改混淆的频道:

 cv::Mat image;
 cv::Mat channels[3];
 cv::Mat cbuffer[1];        
 Camera.grab();
 Camera.retrieve(image);        
 cv::split(image, channels);
 //here is the fix     
 cbuffer[0] = channels[0];
 channels[0] = channels[2];
 channels[2] = cbuffer[0];
 merge(channels, 3, image);
 //end
 my_message = serialize(image);

是的,红色和蓝色通道颠倒了你必须处理缓冲区:

void interchange_colors(unsigned char *data, int tam)
{
  unsigned char cR;
  for(int i=0; i <= tam; i+=3){
    cR = data[i];
    data[i]=data[i+2];
    data[i+2]=cR;
  }
}