经典白平衡算法(灰度世界法和完美反射法MATLAB完整代码)

经典白平衡算法(灰度世界法和完美反射法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]);

经典白平衡算法(灰度世界法和完美反射法MATLAB完整代码)_第1张图片
左原图 右灰度世界

二、完美反射法

%%
%完美反射算法(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]);

经典白平衡算法(灰度世界法和完美反射法MATLAB完整代码)_第2张图片
左原图 右边完美反射


你可能感兴趣的:(经典白平衡算法(灰度世界法和完美反射法MATLAB完整代码))