经典白平衡算法(灰度世界法和完美反射法MATLAB完整代码)
一、灰度世界法
%%
%灰度世界法
RGB=imread('girl.jpeg');
R=RGB(:,:,1);G=RGB(:,:,2);B=RGB(:,:,3);
R1=mean(mean(R));G1=mean(mean(G));B1=mean(mean(B));
g=(R1+G1+B1)/3;
KR=g/R1;KG=g/G1;KB=g/B1;
R2=KR*R;G2=KG*G;B2=KB*B;
rgb=cat(3,R2,G2,B2);
imshow([RGB rgb]);
左原图 右灰度世界
二、完美反射法
%%
%完美反射算法(2)
clc
clear
I=im2double(imread('girl.jpeg'));
R=I(:,:,1);G=I(:,:,2);B=I(:,:,3);
sumRGB=R+G+B;
sumsort=sort(sumRGB(:)');
count=round(size(sumsort,2)*0.9);
T=sumsort(count);
index=sumRGB>T;
KR=max(R(:))/mean(R(index));
KG=max(G(:))/mean(G(index));
KB=max(B(:))/mean(B(index));
R1=R*KR;G1=G*KG;B1=B*KB;
out=cat(3,R1,G1,B1);
imshow([I out]);
左原图 右边完美反射