赞
踩
最近接了一个单子要求使用三种不同的算法实现图像的白平衡操作:本人选取了一下三种:
- Mat myFun::GM(Mat srcImage)
- {
- Mat dstImg;
- vector<Mat>Channels;
- split(srcImage, Channels);
- Mat B = Channels[0];
- Mat G = Channels[1];
- Mat R = Channels[2];
-
- double Baver = mean(B)[0];
- double Gaver = mean(G)[0];
- double Raver = mean(R)[0];
-
- double K = (Baver + Gaver + Raver) / 3;
-
- //每个通道的增益
- double Kb, Kg, Kr;
- Kb = K / Baver;
- Kg = K / Gaver;
- Kr = K / Raver;
-
- //白平衡处理后的通道
- Mat dstB, dstG, dstR;
- dstB = B * Kb;
- dstG = G * Kg;
- dstR = R * Kr;
-
- cout << mean(dstB)[0] << mean(dstG)[0] << mean(dstR)[0] << endl;
-
- //合并通道
- vector<Mat>dstChanges;
- dstChanges.push_back(dstB);
- dstChanges.push_back(dstG);
- dstChanges.push_back(dstR);
-
- merge(dstChanges, dstImg);
- return dstImg;
-
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
Mat myFun::PerfectReflectionAlgo
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。