RasPi Cam C ++ API - 图像的颜色

时间:2016-08-02 15:07:46

标签: c++ opencv raspbian raspberry-pi2

我刚从here尝试了RaspiCam C ++ API,我的照片颜色太蓝了: enter image description here

raspistill -o rcapture.jpg:命令制作的照片 enter image description here 它有点太红了,但比第一个要好得多。

第一张照片是由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);

1 个答案:

答案 0 :(得分:1)

是红色和蓝色通道反转你必须处理缓冲区:

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;
  }
}