拉斯皮凸轮C++;API-图像的颜色 我刚刚尝试过RasiCAM+C++ API,我的照片颜色太蓝了:
照片由命令制作拉斯皮凸轮C++;API-图像的颜色 我刚刚尝试过RasiCAM+C++ API,我的照片颜色太蓝了: ,c++,opencv,raspbian,raspberry-pi2,C++,Opencv,Raspbian,Raspberry Pi2,照片由命令制作raspistill-o rcapture.jpg: 它有点太红了,但比第一个好多了 第一张照片是通过示例拍摄的 我的目标是通过C++ API < /P>获取具有正常颜色的图像。 Juanpalma提出的这一问题的最终解决方案是改变混合渠道: cv::Mat image; cv::Mat channels[3]; cv::Mat cbuffer[1]; Camera.grab(); Camera.retrieve(image); cv::
raspistill-o rcapture.jpg:
它有点太红了,但比第一个好多了
第一张照片是通过示例拍摄的
我的目标是通过C++ API < /P>获取具有正常颜色的图像。
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;
}
}
void interchange\u颜色(无符号字符*数据,int-tam)
{
无符号字符cR;
对于(int i=0;我需要调整白平衡。有一个自动模式,请检查文档。@adrianN这不是白平衡问题,看起来红色和蓝色通道颠倒了。@MarkRansom可能你是对的,但如何修复它?在不了解更多问题的情况下,很难说。你如何显示图像?我不熟悉eno呃,为了帮助你,我添加了标签,希望能得到一些答案。谢谢Juanpalma的回答。我不知道你提到的代码应该放在哪里,但我在这里找到了如何更改频道的方法。总之,它解决了相机图片的问题,所以我接受你的答案。