《Matlab常用白平衡算法》由会员分享,可在线阅读,更多相关《Matlab常用白平衡算法(21页珍藏版)》请在人人文库网上搜索。

1、1 灰色世界法灰色世界法(grey world method) 要计算未知光源的特性必须从图片中提取相关的统计特性。 当我 们能够仅使用一个统计特性就获得未知光源特性时, 算法就变得非常 简单了。在这种情况下,未知光源必须在整幅图片上都是统一的。均 值于是就成为了此类方法之下最好的统计指标。 而灰色世界法正是利 用了均值作为估算未知光源的关键统计量。 从物理意义上说, 灰色世界法假设自然界景物对于光线的平均反 射的均值在总体上是个定值,这个定值近似地为“灰色” 。在给定图 片的白平衡算法中,灰色世界假设图片中的反射面足够丰富,以至于 可以作为自然界景物的一个缩影。 若这幅图片是在经典光源下拍摄。

2、的, 其均值就应该等于灰色。若这幅图是在非经典光源下拍摄的,那么均 值就会大于或者小于灰色值。 而该均值对于灰色的偏离程度则反映了 未知光源相对于已知光源的特性。 虽然这个方法比较简单,但是仍然可以从一些方面进行调整。一 个方面就是对于灰色的定义形式的选择。包括对于光谱的定义、对于 光谱成分的定义和在经典光源之下的 RGB 的响应。 另一个更加重要 的调整方面就是对于灰色的选择。不管如何定义灰色,最佳的灰色之 选必然是自然界实事上出现的灰色。但是这个值是无法获得的(除非 是合成数据) ,所以对于灰色的选择是不同的灰色世界算法的一个重 要的区别点。 一个方法是假设这个灰色就是实事上的灰色。 也就。

3、是说反射光谱 是均衡的。 给定光源之下的 RGB 响应是纯白色对此光源的响应值的 2 一部分。比方说,可以使用 50%作为反射率(虽然这个灰色值对于 人眼视觉习惯而言可能过于明亮) 。 另一种方法,就是根据大量的数据提炼出一个均值,并把它定义 为灰色。 这种方法提炼的灰色值可能因为数据库使用的不同而有所不 同。最终提炼的灰色也能仅适用于原始的数据库,而对于数据库未包 括的图片的适用度就会比较差一些。 确定下来的灰色表达形式可以用 Greyi c 来表示。下标 i 表示信道,上标 c 为 canonical 的首字母,表 示经典光源。 在确定灰色的表达形式后只要用 RGB 响应与经典光源下灰色的。

4、 比值来归一化图片就可以了。假设 RGB 响应均值为 Avei u,下标 i 表示信道,上标 U 为 Unknown 的首字母,表示未知光源。那么归 一化率的计算式为i 如下式所示 : i= Greyi c Avei u 根据光源转换理论,从未知光源到经典光源下图片表达式的转换 式如下式所定义: c= 1 2 3 u 那么,灰色世界法的计算过程如下图所示: 3 灰色的选择灰色的选择 RGBRGB通道的均值通道的均值 计算计算 归一化率计算归一化率计算 光源变换光源变换 Grey c i 本实验选择的灰色值为(129,129,129) ,具体的 matlab 实现程 序如下: %灰色世界法% c。

5、lear all; %清屏% img=imread(b1.bmp); %读取位图的rgb值并存在名为img的三 维矩阵中% AveR=mean(mean(img(:,:,1); %计算 R 通道的均值% AveG=mean(mean(img(:,:,2); %计算 G 通道的均值% AveB=mean(mean(img(:,:,3); %计算 B 通道的均值% 4 Qr=129/AveR; %计算 R 通道的归一化率 Qr% Qg=129/AveG; %计算 G 通道的归一化率 Qg% Qb=129/AveB; %计算 B 通道的归一化率 Qb% %光源变换% img0(:,:,1)=Qr*i。

6、mg(:,:,1); img0(:,:,2)=Qg*img(:,:,2); img0(:,:,3)=Qb*img(:,:,3); figure,imshow(img0),title(变换后图片); %显示图片% 偏蓝偏蓝图片图片 5 白平衡调整后的图片白平衡调整后的图片 正常光照下的图片正常光照下的图片 6 基于动态阀值的基于动态阀值的自动白平衡法 (自动白平衡法 (Automatic White Balance Method) 这个算法是通过对图片的 ycbcr 色空间的分析来确定参考白点的, 所以次算法可以说是自适应白平衡算法。 本算法选择参考白点的阀值 是动态变化的,所以对于不同的图片,。

7、其阀值也不同。通过对图片的 cbcr 坐标空间的分析, 我们可以看到一个接近白色的区域 (near-white region)是包含着参考白点的。通过这个思路,我们可以通过对图片 分区,然后找出参考白点,然后在通过 von kvies model 来调整图片 时期实现白平衡。这样,这个算法就包括了两个步骤了:寻找参考白 点,白点调整。 寻找参考白点: 为了确定一个接近白色的区域, 我们就必须把 RGB 色空间转换成 YCbCr 色空间。 色空间转换后,就是计算 Cb、Cr 的均值 Mb、Mr;然后通过下式 计算 Cb、Cr 的均方差 Db、Dr: Db = (|Cb(i,j) Mb|) i,j。

8、 N Dr = (|Cr(i,j) Mr|) i,j N 为了提高算法的稳健性,将图片分为几个区域并且计算每个区域 的 Mb、Mr、Db、Dr,如果一个区域的 Db,Dr 太小,那么这个区域 就没有足够的色彩变化,就可以丢弃掉了。这样可以避免大面积的统 一色调对结果的影响。 7 接下来就可以通过下面的关系式得到接近白色区域的所有像素点 了: |(,) ( + ()| . |(,) (. + ()| . 根据亮度值,我们选择接近白色区域中的 10%的候选参考白点最 为参考白点。在白点确定后,就可以从参考白点中得到信道增益的值 了。为了维持整幅图片的亮度不变,亮度的最大值被用来得到信道增 益。所以。

9、信道增益不及和参考白点有关还与亮度的最大值有关,其表 达式如下: Rgain= Ymax Ravew Ggain= Ymax Gavew Bgain= Ymax Bavew 其中Ymax是整幅图片像素的亮度最大值,Ravew、Gavew和Bavew是 参考白点的 RGB 信道的均值。 最后, 根据 von-kvies model 来调整图片, 使其达到白平衡的效果。 调整的表达式如下: R = Rgain R G = Ggain G B = Bgain B 其中 RGB 是图片的像素点的三个信道值, R GB是调整之后的图片 的像素点的三个信道值。 8 其源程序如下: %Program for。

10、 white balancing% function W=wbalance(im) clear all; close all; %读取照片的信息% filename, pathname = uigetfile(*.jpg;*.bmp;*.gif, Pick an image-file); if isequal(filename,0) disp(User selected Cancel); else disp(User selected, fullfile(pathname, filename); end fname=strcat(pathname,filename); im=imread(fn。

11、ame); im2=im; im1=rgb2ycbcr(im);%将图片的 RGB 值转换成 YCbCr 值% Lu=im1(:,:,1); Cb=im1(:,:,2); Cr=im1(:,:,3); x y z=size(im); tst=zeros(x,y); 9 %计算 Cb、Cr 的均值 Mb、Mr% Mb=sum(sum(Cb); Mr=sum(sum(Cr); Mb=Mb/(x*y); Mr=Mr/(x*y); %计算 Cb、Cr 的均方差% Db=sum(sum(Cb-Mb)/(x*y); Dr=sum(sum(Cr-Mr)/(x*y); %根据阀值的要求提取出 near-whi。

12、te 区域的像素点% cnt=1; for i=1:x for j=1:y b1=Cb(i,j)-(Mb+Db*sign(Mb); b2=Cr(i,j)-(1.5*Mr+Dr*sign(Mr); if (b1abs(1.5*Db) tst(i,j)=Lu(i,j); cnt=cnt+1; end end end cnt=cnt-1; 10 iy=sort(Ciny,descend);%将提取出的像素点从亮度值大的点到小 的点依次排列% nn=round(cnt/10); Ciny2(1:nn)=iy(1:nn);%提取出 near-white 区域中 10%的亮度值较 大的像素点做参考白点% 。

13、%提取出参考白点的 RGB 三信道的值% mn=min(Ciny2); c=0; for i=1:x for j=1:y if tst(i,j) 由算法决定,不同镜面算法的值不同。 在选出了合适的白色点之后,下一步就是要估计色温,根据计算 的色温来还原已知光源下的图片。色温估计的计算式如下式所示: x= 1 N Xi N i=1 其中下标 X 标示信道,在这种算法中 X=Y、Cb、Cr。 进行色温估计之后,利用光源转换式可以获得如下图所示的计算 过程: 17 色彩空间转换色彩空间转换 RGB-YCbCr 镜面区域选择镜面区域选择 色温估计色温估计 光源变换光源变换 音阶映射法(音阶映射法(ga。

14、mut mapping modelgamut mapping model) 音阶映射法采用了与前几种方法完全不同的思路,是第一个很好 的描述了图片统计特性的算法,由 Forsyth 在 1990 年首次提出。此 方法的第一步是建造一个所有可能的 R、G、B 值得集合,这些值是在 经典光源下拍摄所有现实世界可能出现的反射面获得的。 这个集合是 一个凸多面体,因此可使用其顶点来表征。在第二步中,使用相似的 方法,将图片中所有出现的 R、G、B 值绘成一个凸多面体。第三步是 将这两个凸多面体相互映射从而获得对角变换矩阵。 根据映射得来的 变换矩阵一般不是唯一的,而是一个由许多矩阵组成的集合。所以第 。

15、18 四步就是从这个集合中挑选出最终的变换矩阵。 音阶映射法的主要优点在于对于其应用环境没有特别的限制,因 此其平均表现水平要高于灰色世界法和完美反射法。 其不足之处主要 有三: 第一,要获得在经典光源下所有可能出现的 R、G、B 值集合非常 困难,一般只能获得近似集合。 第二,映射两个三维集合的计算量比较大。 第三,获得的变换矩阵是一个集合, 没有有效的方法获得最优解。 1996 年 Finlayson 提出透视色彩法,在音阶映射法的基础上作了 两点改进。第一,这种方法使用了色度空间(r, g)=(R/(R+B+G), G/(R+B+G)) ;第二,通过考虑可能出现的光源值来进一步缩小得到的。

16、 变换矩阵集合。使用色度空间之后,参数集合从三维降为两维,降低 了运算复杂度。 考虑可能出现的光源以后缩小了目标变换矩阵的范围, 使得最后得到的结果更接近最优解。 透视色彩法的主要缺陷在于光源集合是一个非凸集合,也就说它 无法仅仅使用顶点来精确表征。这样就加大了运算难度。 Barnard 采用的方法是将其近似认为一个凸集合,这样就不需要 增加额外的计算了, 但是对最后变换矩阵集合的准确获得造成了一定 负面影响。 接下来将对音阶图法的基本计算方法作一个阐述。所使用的色度 空间为改进后的二维色度空间(r, g)=(R/(R+B+G), G/(R+B+G)) 。 19 第一步为构造色集合图;第二步与。

17、第三步,构造待测图片的色集 合图并将其映射到测试色集合图中。 经过映射以后未知光源的图片就与经典光源下的可能图像建立了 映射关系。通常,建立的映射关系不是唯一的,而是一个集合,这样 就需要对这个集合中所有的映射关系进行筛选从而获得最佳结果。 选 择的过程必须要建立额外的假设,因此不是唯一的。 色相关法(色相关法(color by correlation modelcolor by correlation model) Finlayson 提出了色相关法作为对于透视色彩法的改进。色相关 法的实质就是将色彩空间离散化,从而进一步降低计算复杂度。色相 关法的基本思想是预先计算一个矩阵, 这个矩阵描述。

18、了不用光源与特 定图像色彩出现之间的相关度。 矩阵的每一行对应于一个不同的训练光源,每一列为可能出现的 色彩值,这些色彩值是通过离散化染色空间(r,g)获得的。行和列 可以任意排列而不影响此方法的有效性。矩阵元素 A(i,j)的含义 为:在光源 i 之下拍摄的图片中出现色彩 j。 色相关法中提出了两种定义矩阵元素 A(i,j)的方法。在第一 种方法中,A(i,j)只能取 0 或 1。取 0 表示色彩 j 不可能出现在 光源 i 之下,取 1 表示色彩 j 可能出现在光源 i 之下。在第二种方法 中,A(i,j)可以去 0 到 1 之间的任何一个值,代表色彩 i 出现在 光源 j 之下的概率。在。

19、计算完相关矩阵之后,使用类似的方法将目标 图片的色彩空间离散化,形成一个相关矢量,与相关矩阵相乘以获得 这个未知光源下的图象与各个已知光源的相关度。 选取相关度最大的 20 一个或几个已知光源对未知光源特性进行估计,求得未知光源特性。 色相关法的好处在于,在充分考虑到图像统计特性的前提下进一 步降低了计算复杂度。但是其不足也是明显的。首先,与透视色彩法 一样,对于所有可能光源的估计是近似的,不完全的,可能影响到最 后的估计结果。 其次, 离散化色彩空间的过程中丢失了许多色彩信息, 在一些情况下,可能使相关矩阵和向量相乘后的结果为零向量。 以下将对色相关的计算步骤进行简要介绍: 第一步,建立相关。

20、矩阵,其过程:(a)找出在参考光源下的彩色图 像的色度;(b)计算出每个色彩在参考光源下的出现概率;(c)将 b 所 计算出的概率加入色相关矩阵 M。 可以看到(a)中所示的色度集合是离散的, 因为色相关矩阵中的各 种颜色分布也是离散的。(c)中相关矩阵的每一列代表不同的光源, 在这一列中的每一个值代表了对应的色彩区域出现的概率。 第二步是相关的过程。在进行相关之前需要先构造图像向量,图 像向量的每一个元素值代表对应的色彩区间是否出现在给定的需要 进行白平衡处理的图片中。 接着就是相关过程了,相关矩阵与特征向量的相关过程可以简要 表示:(a)从图像色度集合中求出图像向量;(b)将图像数据与可能。

21、的 光源进行相关;(c)选择一个可能的光源。 第三步就是最佳光源的选取。最佳光源的选取有多种方法,包括 最大相关值法: 寻找所有相关向量中最大的元素; 最大相关值平均法: 将相关向量里最大的几个值所对应的光源色彩进行平均, 然后求出最 21 佳光源;等等。 神经网络法神经网络法(Neural Network Approach to Colour ConstancyNeural Network Approach to Colour Constancy) 神经网络法是处理视角比较独特的一种白平衡算法。该方法同样 对染色空间(r,g)进行了离散化处理,并将其与神经网略结构相联 系。 目前提出的神经网。

22、络白平衡算法使用了 3 层结构, 输入层有 X000 个节点,第一个隐藏层有 X00 个节点,第二个隐藏层有 X0 个节点, 输出层有 2 个节点。输入层代表离散化的染色空间(r,g) ,每一个 节点的输入可取 0 或 1,表示某个色彩值(ri,gi)是否在图像中出 现。输出层表征了光源特性。上层为下层值得加权和。通过输入不同 的图片,可以训练神经网络的权值,以获得满意的结果。 输入神经元有多个,输出神经元为两个。神经网络的输出描述了 未知光源特性,输入则代表了图像的色彩特性。 对于各层结点数为多少时处理效果最优这个问题,目前还没有办 法在理论上进行验证。试验经验表明,在一定的范围内,结点数的多 少不影响处理的最终效果。但这也同时表明了,神经网络发的处理效 果优化存在一定难度。。

matlab 图像白平衡算法,Matlab常用白平衡算法相关推荐

  1. matlab图像融合评价,MATLAB 图像融合评估算法

    MATLAB 图像融合评价算法 function laplacian(ori_A,ori_B) path(path,'FusionEvaluation/') %Ori_A = imread('cloc ...

  2. matlab图像相加例子,MATLAB图像处理例子

    MATLAB图像处理例子 clc;clear all;close all; a = imread( railway_05.jpg ); b = rgb2gray(a); c = im2bw(b,240 ...

  3. matlab 图像上下翻,Matlab图像九宫格基本操作(翻转,镜像等)+位图操作

    Matlab图像九宫格基本操作(翻转,镜像等)+位图操作 Matlab图像九宫格基本操作(翻转,镜像等)+位图操作 这次blog提到的操作对于matlab来说都很基础,而且对于有编程和计算机基础的人来 ...

  4. 【MATLAB图像融合】[7] 区域能量算法

    能量计算 能量算法,顾名思义就是计算一幅图像或是一个像素区域的能量.能量对于图像而言就是灰度值,灰度值越高能量就越大对应的像素点就是"更白".在8位的灰度图中,0代表黑色,255代 ...

  5. matlab 图像 whos函数,matlab图像处理常用函数

    天开始学习用matlab进行图像处理,做笔记如下. 首先说说如何使用帮助 doc  函数名           获得函数的帮助   例如 doc  format  可获得 函数format的说明 he ...

  6. matlab图像大作业,MATLAB图像大作业

    [实例简介] Matlab 图像处理 人脸识别 等等 包括 jpeg仿真... end end end back=)*examplekd'i end 得到的 differenc最大值为1.232902 ...

  7. matlab图像隐写,matlab软件图像处理相关内容.ppt

    内容主要分为以下四个篇章: 一.介绍应用matlab处理图像问题 (以一个图像隐写的简单例子为说明线索) 二.应用matlab解决三维血管重建中的图像处理问题 三.图像处理练习(应用matlab解决双 ...

  8. matlab 图像矢量量化,MATLAB环境下基于矢量量化的说话人识别系统(1)

    第21卷第6期湖 北 工 业 大 学 学 报2006年12月 Vol.21No.6 Journal of Hubei Univer sity of Technology Dec.2006 [收稿日期] ...

  9. matlab图像对折,Matlab下如何将一个索引图像进行对折小程序--原创

    最近,在网上看到一则将图像相对于y轴对折的程序,看到不长就直接运行了一下,结构并不顺利,不过费点周折终于出来结果,先把过程详述如下: 1.首先,给出网络上的源程序,可能大家早就很熟了: 下面通过运用图 ...

  10. matlab 图像退化,基于matlab的退化图像复原(一)------图像退化处理

    图像恢复技术是图像处理领域一类重要的处理技术,与图像增强等其他基本图像处理技术类似,该技术也是以获取视觉质量得到某种程度改善为目的的,所不同的是图像恢复过程需要根据指定的图像退化模型来完成,根据这个退 ...

最新文章

  1. MySQL 使用SELECT ... FOR UPDATE 做事务写入前的确认(转)
  2. 双通输入法源码公布 by 尉迟方
  3. Android EditText属性用法
  4. 【杂谈】如何从数据准备,模型设计与调优,训练到部署完成整个深度学习算法流程...
  5. controller需要捕获异常吗_Spring之Controller异常处理
  6. 嵌入式处理器 cisc risc_RISC-V能否“重构”芯片产业格局
  7. lenze变频器怎么更改地址_S7-200 SMART PLC Modbus通信控制 V20变频器
  8. Java中如何使用session
  9. html中iframe根据子页面内容动态修改高度
  10. 一年太久,研究员决定不等补丁直接披露 Safari 0day 详情
  11. How to shrink disk for KVM
  12. nginx负载均衡?
  13. Qt日历控件显示周数为:日一二三四五六
  14. 路侧停车系统有利有弊
  15. C:\WINDOWS\system32\config\systemprofile\Desktop引用了一个不可用的位置
  16. C/C++ | 23-12 用指针的方法,将字符串“ABCD1234efgh”前后对调显示
  17. 定义方法,实现两个整数的加法
  18. 打造个人版微信小程序(1)——本地开发api接口调用
  19. git 安装后,右键没有 git clone
  20. Python学习 day03

热门文章

  1. Tensorflow2 图像分类-Flowers数据及分类代码详解
  2. Kotlin全套视频教程分享
  3. 高等数学阶段复习, 函数极限, 连续, 导数,微分
  4. 数据结构题(C语言)----括弧匹配检验(check)
  5. C1能力认证训练题解析 _ 第二部分 _ Web基础
  6. U-Net深度学习灰度图像的彩色化
  7. 点击苹果手机计算机页面慢,苹果平板电脑浏览器打开慢怎么办
  8. 阿里云短信平台实现手机验证码登录
  9. java编程实现斗地主发牌
  10. 清华大学操作系统课程实验