MATLAB图像处理_图像的白平衡算法(灰色世界法)

白平衡,即所谓的白色的平衡。

白平衡的算法有很多,这里记录的是最简单实用的白平衡算法,即灰色世界法!

灰度世界算法(Gray World)是以灰度世界假设为基础的,该假设认为对于一幅有着大量色彩变化的图像, R、 G、 B 三个分量的平均值趋于同一个灰度K。


下面是具体的算法代码:

RGB=imread('test.jpg');

R = RGB(:,:,1);      G = RGB(:,:,2);      B = RGB(:,:,3);
Rx4 = RGB(:,:,1)*4;  Gx4 = RGB(:,:,2)*4;  Bx4 = RGB(:,:,3)*4; //Rx4只是做了一个简单的线性的提亮,可以不用参考。

Rave = mean(mean(R)); 
Gave = mean(mean(G)); 
Bave = mean(mean(B));
Kave = (Rave + Gave + Bave) / 3;

R1 = (Kave/Rave)*R; G1 = (Kave/Gave)*G; B1 = (Kave/Bave)*B; 
R2 = (Kave/Rave)*Rx4; G2 = (Kave/Gave)*Gx4; B2 = (Kave/Bave)*Bx4; 

RGB_white = cat(3, R1, G1, B1);
RGB_whitex4 = cat(3, R2, G2, B2);

RGB_white_out = uint8(RGB_white); RGB_white_outx4 = uint8(RGB_whitex4);

下面是算法的效果:

原图:



白平衡之后:



可见,最原始的算法,效果还是不错的,后面有机会会补充其他好一些的算法。


注:原创文章,转载请注明出处: http://blog.csdn.net/scottly1/article/details/42741495


发布了123 篇原创文章 · 获赞 127 · 访问量 58万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览