资源描述:
《图像颜色校正设计论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、河北农业大学数字图像处理课程设计图像颜色校正院系:信息科学与技术学院专业班级:电子0902班姓名:刘华平学号:20092340202142012年12月9日91设计目标:图像的颜色使图像的一种重要特征,但是由于物体在不同的光源下呈现不同的原色,往往在拍摄的时候会产生偏色现象,图像颜色校正就是为了消除偏色现象。2设计原理:2.1灰度世界算法假定一幅带有足够多色彩变化的图像,则这幅场景的平面反射能消除偏色。(1)计算图像R,G,B三个颜色通道的平均通道(,,)N:为图像的像素总数。,,分别为校正前图像第i个像素的红、绿、蓝三个分量值。令图像的平均灰度
2、值。(2)求R,G,B三个颜色通道的增益系数()。则对于图像中每个像素点C,其校正后的三个通道为()(3)将图像中各个像素的谁分量调整到可显示的范围【0,255】之内。求出图像所有像素灰度值的最大值。令如果,则对图像中每个像素进行新的调整,由得到。注:“灰度世界算法”不适用于大块单一颜色的情况。2.2基于标准差加权的灰度算法将图像分为若干宏块,然后计算每一宏块的R、G、B三个通道的平均值和标准差3设计程序流程图3.1灰度世界算法9读取图像yumi1.jpg显示原图像计算图像大小m*n计算图像R、G、B分量所有像素点的总和R1、G1、B1计算R、G
3、、B三个通道所有像素点的平均值R1、G1、B1计算整幅图像的平均灰度值Greg=(R1+G1+B1)/3计算三个通道的增益系数kr=Greg/R1kg=Greg/G1kg=Greg/B1将图像调整到0—255范围内,先求得三个通道最大值max,令factor=max/255;如果factor>1,则图像进行调整,R2=R2/factorG2=G2/factorB2=B2/factor,否则R2、G2、B2保持不变求校正后的三个通道R2、G2、B2R2=R*kr,G2=G*kg,B2=B*kb得到校正图像J输出校正图像J9读取原图像yumi1.jp
4、g显示原图像yumi1.jpg获取图像RGB分量将图像分别对RGB分量进行分块计算宏块数m=480/16n=640/16对每一宏块,计算RGB分量的平均值ra,ga,ba和标准差sr,sg,sb计算每一宏块的RGB相关系数D对于每一宏块,设置标识f,如果D大于等于1,则标识f为1,否则为0计算标准差加权的RGB分量的平均值wr,wg,wb求出整幅图像的RGB三个通道的增益系数kr,kg,kb用增益系数进行校正,得到新的RGB分量r3=r*kr,G3=g*kg,b3=b*kb将图像调整到0—255范围内,先求得三个通道最大值max,令factor=
5、max/255;如果factor>1,则图像进行调整,r3=r3/factorg3=g3/factorb3=b3/factor,否则r3、g3、b3保持不变得到校正后的图像J橡树校正后图像J94.设计程序及图像效果分析4.1I=imread('yumi1.jpg');%读取图像’yumi1.jpg’imshow(I)%显示原图像II=double(I);%将图像变为双精度型[m,n]=size(I);%计算图像I的大小n=n/3;%图像列除以3R1=0;%R1初始化G1=0;%G1初始化B1=0;%B1初始化fori=1:mforj=1:n%设置
6、循环R1=R1+I(i,j,1);%计算图像R分量所有像素点的灰度值总和G1=G1+I(i,j,2);%计算图像G分量所有像素点的灰度值总和B1=B1+I(i,j,3);%计算图像B分量所有像素点的灰度值总和endend%循环结束R1=R1/(m*n);%计算R通道的平均值R1G1=G1/(m*n);%计算G通道的平均值G1B1=B1/(m*n);%计算B通道的平均值B1Greg=(R1+G1+B1)/3;%计算整个图像的灰度平均值GregKr=Greg/R1;%计算R通道的增益系数KrKg=Greg/G1;%计算R通道的增益系数KgKb=Gre
7、g/B1;%计算R通道的增益系数kbfori=1:mforj=1:n%设置循环体R2(i,j)=I(i,j,1)*Kr;%对于图像中每个像素点,计算校正后R通道的值R2(i,j)G2(i,j)=I(i,j,2)*Kg;%对于图像中每个像素点,计算校正后G通道的值G2(i,j)B2(i,j)=I(i,j,3)*Kb;%对于图像中每个像素点,计算校正后B通道的值B2(i,j)endend%循环结束fori=1:m%设置循环体forj=1:nMAX(i,j)=max(R2(i,j),G2(i,j));%对于每一个像素点,计算其R2,G2,B2分MAX(
8、i,j)=max(MAX(i,j),B2(i,j)); %量的最大值endend%循环结束MAX1=max(max(MAX));%计算