1、四. 设计程序4.1 灰度世界法4.2 基于图像熵的灰度世界法4.3 改进基于图像熵的灰度世界法五. 图像效果分析六. 结论和体会颜色是灰度图象的一种重要特征,物体在不同光源下呈现的颜色不同,本实验是为了对产生色偏的图象进行颜色校正,使采集图像尽量减少失真度。二. 设计原理2.1 灰度世界法假定一幅带有足够多色彩变化的图像,则这幅场景的平均反射能够抵消偏色现象。 步骤:(1) 计算图像的R,G,B的平均值,及平均灰度值,公式如下: (2)求R,G,B的通道增益系数Kr,Kg,Kb及校正后的通道,公式如下:(3) 求图像校正后R,G,B的最大值Mval,令factor=Mval/255,如果fa
2、ctor1则利用以下公式重新调整R,G,B的值,使其可在0:255内显示,公式如下:(4) 将重新调整的R,G,B值重新赋给图像。(5) 输出图像注:“灰度世界算法”不适用于大块单一颜色的情况。2.2 基于图像熵的灰度世界法 利用图像的熵来约束增益系数,从而防止“过校正”。步骤:(1)完成灰度世界步骤(2)中kr,kb,kg的值;(2)对图像的三个颜色通道分别计算一维离散相对熵Hr,公式如下:(3)求R,G,B三个通道的约束增益系数,公式如下:(4)接着灰度世界算法的步骤(3), 继续进行,用约束增益系数来代替2.2中增益系数计算。(5)输出图像。2.3 基于图像熵的灰度世界算法通过调整其改进
3、后的增益系数,使它们的增益系数相近且达到合适值。在2.2中求出约束增益系数,对增益系数的大小进行改变,将三个约束增益系数的平均值赋给每一个约束增益系数,然后接着2.2操作。否求RGB三个通道的增益系数计算校正后的三个通道R1、G1、B1求出图像中所有R1、G1、B1的最大值MAXtal是用公式R12=R1/Factor 调整Factor=MAXtal/2551输出图象3.1灰度世界法读取图象yumil.jpg计算图象RGB三个通道的平 均值求图象的平均灰度值Greg3.2基于图像熵的灰度世界法求出每个像素点所对应的RGB的概率并求出他们的熵Hr,Hg,Hb求RGB三个通道的约束增益系数四.设计
4、程序4.1灰度世界法I=imread(yumi1.jpg);%读入原图像imshow(I);%显示原图像m,n=size(I);n=n/3;R=0;G=0;B=0;I=double(I);%改为双精度图像for i=1:m for j=1:n R=I(i,j,1)+R; %求像素R的和 G=I(i,j,2)+G; %求像素G的和 B=I(i,j,3)+B; %求像素B的和 endendr1=R/(m*n); %求R平均值g1=G/(m*n);%求G平均值b1=B/(m*n);%求B平均值grey=(r1+b1+g1)/3;%平均灰度值greykr=grey/r1; %求增益系数kg=grey/
5、g1;kb=grey/b1; %求增益系数 for i=1: r2(i,j)=I(i,j,1)*kr; g2(i,j)=I(i,j,2)*kg; b2(i,j)=I(i,j,3)*kb;%求校正后的三个通道end mval=0;%给mval赋初值 mval=max(mval,r2(i,j);%求出r中最大值赋给mval mval=max(mval,g2(i,j); mval=max(mval,b2(i,j); endend%求最大值(mval)F=mval/(m*n);%求facror(F) if F1%如果F小于1,不改变校正后的通道值r3=r2; b3=b2; g3=g2;else r3=
6、r2/F;%否则,重新赋值 g3=g2/F; b3=b3/F; for j=1: I(i,j,1)=r3(i,j); I(i,j,2)=g3(i,j); I(i,j,3)=b3(i,j);%将求得的R,G,B值赋给图像Ifigure;imshow(uint8(I);%输出图像 4.2基于图像熵的灰度世界法 I=imread( H1=0;H11=0;H2=0;H22=0;H3=0;H33=0;%赋初值0for k=0:255 sum1=0;%sum1赋初值0 for i=1: for j=1: if I(i,j,1)=k sum1=sum1+1;%值为k,则加1 end end if sum1=
7、0 P1(k+1)=1;%如果不存在像素为ki的点,给其概率赋值为1 else P1(k+1)=sum1/(m*n);%求概率 H1=P1(k+1)*log2(P1(k+1); H11=H1+H11; Hr=-H11/8;%求熵end sum2=0;%sum2赋初值0 if I(i,j,2)=k sum2=sum2+1; if sum2=0 P2(k+1)=1; else P2(k+1)=sum2/(m*n); H2=P2(k+1)*log2(P2(k+1); H22=H2+H22; Hg=-H22/8; end%求熵 sum3=0;%sum3赋初值0 if I(i,j,3)=k sum3=sum3+1; if sum3=0 P3(k+1)=1;else P3(k+1)=sum3/(m*n); H3=P3(k+1)*log2(P3(k+1); H33=H3+H33; Hb=-H33/8; krrc=(kr-1)*Hr+1;%求改进后的增益系数kgrc=(kg-1)*Hg+1;kbrc=(kb-1)*Hb+1; r2(i,j)=I(i,j,1)*krrc; %求校正后的红色通道 g2(i,j)=I(i,j,2)*kgrc;%求校正后的绿色通道 b2(i,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1