码迷,mamicode.com
首页 > 编程语言 > 详细

灰度世界算法(Gray World Algorithm)

时间:2014-12-07 19:09:26      阅读:508      评论:0      收藏:0      [点我收藏+]

标签:图像处理   灰度世界算法   

人的视觉系统具有颜色恒常性,能从变化的光照环境和成像条件下获取物体表面颜色的不变特性,但成像设备不具有这样的调节功能,

不同的光照环境会导致采集的图像颜色与真实颜色存在一定程度的偏差,需要选择合适的颜色平衡(校正)算法,消除光照环境对颜

色显现的影响。灰度世界算法是最常用平衡算法。

一、灰度世界算法

灰度世界算法以灰度世界假设为基础,该假设认为:对于一幅有着大量色彩变化的图像,bubuko.com,布布扣三个分量的平均值趋于同一灰

度值bubuko.com,布布扣从物理意义上讲,灰色世界法假设自然界景物对于光线的平均反射的均值在总体上是个定值,这个定值近似地为“灰

色”。颜色平衡算法将这一假设强制应用于待处理图像,可以从图像中消除环境光的影响,获得原始场景图像。

算法执行步骤:

(1)一般有两种方法确定bubuko.com,布布扣:

要么取固定值(如最亮灰度值的一半,八位显示的话即为128);

要么通过计算图像bubuko.com,布布扣三通道平均值bubuko.com,布布扣,取bubuko.com,布布扣

(2)计算bubuko.com,布布扣三个通道的增益系数:bubuko.com,布布扣;bubuko.com,布布扣;bubuko.com,布布扣

(3)根据Von Kries对角模型,对于图像中的每个像素bubuko.com,布布扣,调整其分量bubuko.com,布布扣分量:

bubuko.com,布布扣

这种算法简单快速,但是当图像场景颜色并不丰富时,尤其出现大块单色物体时,该算法常会失效。

:Von Kries提出,可用一个对角矩阵变换描述两种光照条件下同一物体表面颜色间的关系。假定在光照bubuko.com,布布扣下感知

到的物体bubuko.com,布布扣值分别为bubuko.com,布布扣bubuko.com,布布扣根据Von Kries对角理论有:

bubuko.com,布布扣
该理论实现不同光源间的转换。

二、Matlab实现

function Test()
I=imread('test.jpg');
y=GrayWorld(I);
y=uint8(y);
figure(1);imshow(I);
figure(2);imshow(y);


function y=GrayWorld(Image)
r=Image(:,:,1);
g=Image(:,:,2);
b=Image(:,:,3);

avgR = mean(mean(r));
avgG = mean(mean(g));
avgB = mean(mean(b));
avgRGB = [avgR avgG avgB];
grayValue = (avgR + avgG + avgB)/3
scaleValue = grayValue./avgRGB;

newI(:,:,1) = scaleValue(1) * r;
newI(:,:,2) = scaleValue(2) * g;
newI(:,:,3) = scaleValue(3) * b;

y=newI;


测试结果:

bubuko.com,布布扣

bubuko.com,布布扣

灰度世界算法(Gray World Algorithm)

标签:图像处理   灰度世界算法   

原文地址:http://blog.csdn.net/u010839382/article/details/41789261

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!