PhotoShop算法实现--色彩平衡(偏色校正)(一)
http://blog.csdn.net/kezunhai
色彩平衡是图像处理软件中一个重要环节,通过对图像的色彩平衡处理,可以校正图像色偏,过饱和或饱和度不足的情况,也可以根据自己的喜好和制作需要,调制需要的色彩,更好的完成画面效果,应用于多种软件和图像、视频制作中。
实现原理:根据用户指定的R、G、B三个色彩的调整分量,分别附加到对应的色彩分量上,从而改变原始图像的色彩,以达到用户的需求。
实现代码:
// 色彩增强: cR,cG,cB分别是RGB的增量(-255~255)
// cbImg:彩色平衡后的返回图像
void PhotoShop:: ColorBalance(Mat& img, Mat& cbImg, int cR, int cG, int cB)
{
if ( cbImg.empty())
cbImg.create(img.rows, img.cols, img.type());
cbImg = cv::Scalar::all(0);
int i, j;
Size size = img.size();
int chns = img.channels();
if (img.isContinuous() && cbImg.isContinuous())
{
size.width *= size.height;
size.height = 1;
}
// 验证参数范围
if ( cR<-255 )
cR = -255;
if ( cG<-255 )
cG = -255;
if ( cB<-255 )
cB = -255;
if ( cR>255)
cR = 255;
if ( cG>255)
cG = 255;
if ( cB>255)
cB = 255;
for ( i= 0; i(src[j*chns] +cR);
dst[j*chns+1] = saturate_cast(src[j*chns+1] +cG);
dst[j*chns+2] = saturate_cast(src[j*chns+2] +cB);
}
}
}
效果测试:
另外,关于色彩偏差的检测可以参考:图像偏色检测算法
作者:kezunhai 出处:http://blog.csdn.net/kezunhai 欢迎转载或分享,但请务必声明文章出处。