数字图像处理12-白平衡算法
白平衡算法总结

Cb(i, j) − Mb ) N Cr(i, j) − Mr ) N
Dr =
i ,j (
为了提高算法的稳健性,将图片分为几个区域并且计算每个区域 的 Mb、Mr、Db、Dr,如果一个区域的 Db,Dr 太小,那么这个区域 就没有足够的色彩变化,就可以丢弃掉了。这样可以避免大面积的统 一色调对结果的影响。
8
%计算 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-white 区域的像素点% 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 (b1<abs(1.5*Db) & b2<abs(1.5*Dr)) Ciny(cnt)=Lu(i,j); tst(i,j)=Lu(i,j); cnt=cnt+1; end end end cnt=cnt-1;
9
iy=sort(Ciny,'descend');%将提取出的像素点从亮度值大的点到小 的点依次排列% nn=round(cnt/10); Ciny2(1:nn)=iy(1:nn);%提取出 near-white 区域中 10%的亮度值较 大的像素点做参考白点% %提取出参考白点的 RGB 三信道的值% mn=min(Ciny2); c=0; for i=1:x for j=1:y if tst(i,j)<mn tst(i,j)=0; else tst(i,j)=1; c=c+1; end end end R=im(:,:,1); G=im(:,:,2); B=im(:,:,3); R=double(R).*tst;
白平衡灰度世界算法

白平衡灰度世界算法
白平衡是一种用于调整图像颜色的技术,目的是消除图像中可能存在的色偏。
在计算机视觉和图像处理中,灰度世界算法是一种用于实现白平衡的方法之一。
灰度世界假设整个图像中的平均亮度应该是中性灰度(白色、灰色或黑色)。
基于这个假设,灰度世界算法会根据图像中的颜色分布情况来调整图像的白平衡,使整体图像呈现更为中性的色调。
一种简单的灰度世界算法是根据不同色彩通道的平均值来进行调整。
具体步骤如下:
* 计算图像中每个颜色通道的平均值(红色、绿色、蓝色通道)。
* 计算这些平均值的整体平均值(即灰度值的平均值)。
* 将每个颜色通道的平均值除以整体平均值,得到调整系数。
* 使用调整系数对每个颜色通道进行线性缩放,以实现白平衡。
这样调整后,图像中的整体色调就更趋于中性灰度。
需要注意的是,虽然灰度世界算法是一种简单而直观的方法,但在某些情况下可能不足以应对复杂的光照条件。
因此,在实际应用中,可能会采用更复杂的算法,如基于直方图统计的算法或考虑场景特定信息的算法,以达到更精准的白平衡效果。
白平衡算法——gamma算子

传统CRT:
二、基于伽马变换的图像增强
原理步骤:
归一化
补偿
反归一化
二、伽马变换原理
归一化: y cr , r [0,1]
将像素值转换为 0 ~ 1 之间的实数。 算法如下 :r= ( i + 0. 5)/256 这里包含 1 个除 法和 1 个加法操作。对于像素 A 而言 , 其对应的归一化值为 0. 783203 。
LUT[i] = intTemp; }
二、程序的实现
//单通道 if (resultImage->nChannels == 1) {
for (int i = 0; i < resultImage->height; i++) {
for (int j = 0; j < resultImage->width; j++) {
假设像素值 i=200
1 1 0.4545
gamma 2.2 0.783203 0.894872
二、伽马变换原理
反归一化:
将经过预补偿的实数值反变换为 0 ~ 255 之间的整数值。具体算法为 : f*256 - 0.
5 此步骤包含一个乘法和一个减法运算。续前 例 , 将 A 的预补偿结果 0. 894872
float f = (i + 0.5f) / 255; f = (float)(pow(f, kFactor)); int intTemp = f*255.0f - 0.5f; if(intTemp<0) {
intTemp=0; } else if(intTemp>255) {
intTemp=255; }
白平衡偏移 数学原理

白平衡偏移的数学原理白平衡偏移,又称白平衡调整或白平衡修正,是摄影和摄像技术中的一个重要概念。
它的主要目的是纠正因光源色温不同而导致的图像色彩偏差,使得白色物体无论在何种光照条件下,都能在图像中呈现出真正的白色。
通过调整红绿蓝三原色的输出比例,摄影师能够控制图像的色温,从而改变图像的整体色调。
一、概念与定义白平衡偏移的基本概念是在白平衡调整的基础上,通过增加或减少红色和蓝色通道的输出,使图像色彩更加准确或产生特定的色彩效果。
在白平衡偏移中,通常会有一个基准点,这个点代表了正确的白平衡,也就是所谓的“中性点”。
摄影师可以通过调整偏移量,使图像的色彩偏向红色或蓝色,从而达到调整图像色调的目的。
在数字摄影中,白平衡偏移通常是通过相机或后期处理软件中的白平衡设置来实现的。
这些设置允许摄影师选择预设的白平衡值,或者手动调整红绿蓝三原色的输出比例。
二、性质与特点灵活性:白平衡偏移允许摄影师根据需要进行微调,以获得最佳的色彩效果。
与自动白平衡功能相比,白平衡偏移提供了更大的灵活性和控制力。
创意性:通过调整白平衡偏移,摄影师可以创造出特定的色彩氛围,如暖色调或冷色调,以强调或改变图像的情感表达。
准确性:在某些特殊光照条件下,自动白平衡可能无法准确还原白色物体的真实色彩。
此时,使用白平衡偏移可以手动调整色温,以获得更准确的色彩表现。
三、数学原理白平衡偏移的数学原理主要涉及颜色空间和色温的概念。
在数字图像处理中,颜色通常由红绿蓝(RGB)三个通道来表示。
每个通道的值决定了该颜色的强度和色调。
色温则是一个描述光源颜色的物理量,通常用开尔文(K)来表示。
颜色空间:在RGB颜色空间中,每个颜色都可以通过红绿蓝三个通道的值来唯一确定。
通过调整这三个通道的值,可以改变颜色的色调和强度。
白平衡偏移实际上就是在这个颜色空间中对颜色进行调整。
色温与白平衡:色温与白平衡密切相关。
不同色温的光源会产生不同的颜色偏差。
例如,暖色调的光源(如夕阳)通常具有较低的色温(约3000K),而冷色调的光源(如蓝天)则具有较高的色温(约10000K)。
白平衡算法步骤

白平衡算法步骤In the realm of digital photography, white balance is a crucial aspect that ensures accurate color reproduction. The white balance algorithm plays a pivotal role in this process, correcting color casts that may arise due to different lighting conditions. Here are the steps involved in a typical white balance algorithm:在数字摄影领域,白平衡是确保准确色彩再现的关键方面。
白平衡算法在这一过程中起着至关重要的作用,可以纠正因不同照明条件而产生的色偏。
以下是典型白平衡算法所涉及的步骤:**Step 1: Reference White Point Detection**The first step is to identify a reference white point in the image. This point should ideally be a neutral gray or white color, unaffected by any color casts. Algorithms often analyze the image to find areas that are closest to this ideal white point.**第一步:参考白点检测**第一步是在图像中识别一个参考白点。
理想情况下,这个点应该是中性灰色或白色,不受任何色偏的影响。
算法通常会分析图像,以找到最接近理想白点的区域。
**Step 2: Color Temperature Estimation**Based on the detected reference white point, the algorithm estimates the color temperature of the scene. Color temperature is a measure of the tint of white light, with warmer temperatures producing morered hues and cooler temperatures leaning towards blue.**第二步:色温估计**根据检测到的参考白点,算法会估计场景的色温。
yuv 白平衡 算法

yuv 白平衡算法
YUV是一种颜色编码系统,常用于数字视频和图像处理。
在YUV
编码中,Y代表亮度(Luminance),U和V代表色度(Chrominance)。
白平衡算法是用来调整图像的色温,以使白色看
起来真实且中性。
YUV白平衡算法通常涉及以下几种方法:
1. 灰世界假设(Gray World Assumption),该算法假设整个
图像的平均颜色应该是灰色,因此通过调整RGB通道的增益来实现
白平衡。
在YUV颜色空间中,可以通过调整U和V通道的增益来实现。
2. 白色点假设(White Point Assumption),该算法假设图像中存在一个已知的白色点,通过测量该点的颜色来进行白平衡调整。
这种方法通常需要用户提供白色参考点,然后根据该点进行色彩校正。
3. 直方图均衡化(Histogram Equalization),该算法通过对图像的颜色直方图进行调整,使得各个颜色通道的分布更加均匀,
从而实现白平衡效果。
4. 灰度世界假设(Grey World Assumption),该算法假设整个图像的平均颜色应该是灰色,但与灰世界假设不同的是,该算法还考虑了不同颜色通道的亮度不一致性,因此可以更好地实现白平衡效果。
总的来说,YUV白平衡算法是通过调整色度通道的增益来实现白平衡,常用的方法包括灰世界假设、白色点假设、直方图均衡化和灰度世界假设。
这些算法可以根据实际需求和图像特性进行选择和调整,以达到理想的白平衡效果。
数字图像处理 算法原理

数字图像处理算法原理
数字图像处理是指应用数字计算机对图像进行处理与分析的技术。
其中涉及到的算法原理包括:
1. 灰度变换算法:通过改变图像中像素的灰度级分布,实现对图像亮度、对比度、伽马校正等属性的调整。
常用的灰度变换算法有线性变换、逆变换、非线性自适应直方图均衡化等。
2. 图像滤波算法:用于平滑图像、强调图像细节或检测图像中的边缘。
常用的滤波算法包括均值滤波、中值滤波、高斯滤波、导向滤波等。
3. 图像增强算法:通过改善图像的质量和可视化效果,使图像更适合人眼观察和计算机分析。
常用的图像增强算法有直方图均衡化、局部对比度增强、锐化增强等。
4. 彩色图像处理算法:针对彩色图像的特点,进行颜色空间转换、亮度调整、色彩增强、色彩平衡等操作。
常用的彩色图像处理算法有RGB空间转换为HSV空间、色彩补偿、白平衡调整等。
5. 图像分割与边缘检测算法:将图像划分为不同的区域或提取图像中感兴趣的目标,常用的算法包括阈值分割、基于边缘的分割、基于区域的分割等。
6. 图像压缩与编解码算法:将图像数据经过压缩编码处理,以减少存储空间和传输带宽。
常用的压缩算法有无损压缩算法
(如RLE、Huffman编码)和有损压缩算法(如JPEG)。
除了以上算法原理外,还包括图像配准、图像恢复、形态学处理、基于特征的图像分析等其他算法。
这些算法原理的应用能够有效地处理数字图像,对于图像识别、图像搜索、医学图像分析等领域具有广泛的应用价值。
自动白平衡方法

自动白平衡方法
自动白平衡是一种图像处理的技术,用于自动调整图像中的白色色彩,以确保图像中白色物体的颜色看起来真实和准确。
目前常用的自动白平衡方法包括以下几种:
1. 灰度世界法(Gray World Algorithm):假设整个图像中的
灰色像素的平均值应该是中性灰色,根据这个假设调整图像的颜色。
通过计算图像中红、绿、蓝三个通道的平均值,将这个平均值视为中性灰色,然后根据这个中性灰色对图像的颜色进行调整。
2. 最大值法(Max-RGB Algorithm):假设在一张图像中,红、绿、蓝三个通道中,最大值所对应的像素应该是白色,根据这个假设调整图像的颜色。
通过找到图像中红、绿、蓝三个通道中的最大值,并将这个最大值设为白色的亮度值,然后根据这个亮度值对图像的颜色进行调整。
3. 白色补偿法(White Patch Algorithm):假设图像中存在一
个物体是白色的,通过使用这个白色物体来调整整个图像的颜色。
通过在图像中寻找最亮的像素点,并将该像素点的颜色设为白色,然后根据这个白色值对图像的颜色进行调整。
4. 边缘法(Edge-Based Algorithm):通过检测图像中边缘的
梯度信息来调整图像的颜色。
根据边缘的灰度变化情况来判断图像中的颜色偏差,然后根据颜色偏差对图像进行补偿。
以上只是几种常见的自动白平衡方法,实际应用中可以根据具体情况选择合适的方法或者结合多种方法进行处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
其中 max 代表最大值,w 代表设定的 white 值。 这种算法实际上是一种类似反求光源的算法。Rgb 值最高的一点如果确实是对应白色的
话,那么其在原本图像中呈现的颜色,就能很好的反应光源的颜色。然后把这个点通过增 益调整为白色,其实就相当于把环境光由非纯白色调整为纯白色,这样就达到了白平衡的 效果。 但是同前面一种算法一样,这种算法也有一定的局限性,需要优化。首先就是一个点的颜 色很可能具有偶然性,比如全图中最亮的像素本身就是黄色的,那么白平衡的结果就是把 所有黄色都变淡了。因此使用这种算法时多是取最亮的几个点的平均值作为最大值,或者 与其他算法配合起来使用。 然后就要提到 GW 和 PR 正交组合算法,这个算法的具体运算过程如下:
可以看到这里也是如上用到了平均值与最大值,但是和之前不同的是,这里有了一次分量和二 次分量,而且也有了 uv 两个参数。其基本的原理就是先确定一个二次的白平衡公式:
随后通过两个确定的目标模型求出 uv 值,就可以进行白平衡的运算了。第一个模型是平均值 的模型,也就是把 r 值向 rgb 的平均值的方向平衡。这里给了两个参数 R(ave)和 K (ave),分别是 r 分量的平均值和 rgb 三个分量的平均值的平均值。通过这个式子就可以得 到第一个方程,这里就是按照 gw 算法的思想写出的式子。同理下一个式子就是按照 pr 算法的 思想写出的式子。这两个式子联立就可以得到 uv 的值,进而就可以得到白平衡的运算结果。 程序也是实现了这一功能,进而得到了白平衡的运算结果。首先读取图片,获得图片的长宽 值。随后初始化一些值,比如输出图片的矩阵,记录最大值,平均值的变量等。随后利用一个 循环,遍历图像矩阵中每一个像素值,分别求出 rgb 三个通道平均值与最大值。随后求出三个 通道平均值的平均值与最大值的平均值记为 ak 与 mk,参与后续的运算。
其中 ave 代表均值。 可以看到,经过这种变化之后,rgb 的均值会变为一致。那么比如说原本图像偏蓝,b 分量 的值高,那么经过这种算法 b 分量值会降低,相对的 rg 分量值会提高。最终图像就会接近 原本的颜色。但是这个算法有很大的局限性。比如一张照片拍摄的是海面,那必然蓝色的 分量会大大多于其余两种。那么经过这种算法过后,本身应该是蓝色的色调被变化为了其 他颜色,显然是没有达到预期效果的。 然后我们来说一说 pr 也就是全反射理论算法。这个算法的思想是把图形中最亮的一点当做 是白色点,然后以此颜色作为白色的模板对其他颜色的像素进行变化。基本的算法如下:
end if(mb<f(i,j,3)) mb=f(i,j,3); end ar=ar+f(i,j,1); ag=ag+f(i,j,2); ab=ab+f(i,j,3); end end mk=(mr+mg+mb)/3.0; ak=(ar/m/n+ag/m/n+ab/m/n)/3; ur=(mk*ar-ak*mr)/(mr*mr*ar-ar*ar*mr); vr=(ak-ur*ar*ar)/ar; ug=(mk*ag-ak*mg)/(mg*mg*ag-ag*ag*mg); vg=(ak-ug*ag*ag)/ag; ub=(mk*ab-ak*mb)/(mb*mb*ab-ab*ab*mb); vb=(ak-ub*ab*ab)/ab; for i=1:m for j=1:n f1(i,j,1)=ur*f(i,j,1)*f(i,j,1)+vr*f(i,j,1); f1(i,j,2)=ug*f(i,j,2)*f(i,j,2)+vg*f(i,j,2); f1(i,j,3)=ug*f(i,j,3)*f(i,j,3)+vb*f(i,j,3); end end imshow(f1);
这次作业的要求是阅读中文文献,实现其中提到的一种算法。然后和英文文献中的算法相 比较,看两种算法进行的白平衡处理有什么不同的效果。那么想要完成这一任务,首先就 要理解什么是白平衡。 白平衡说通俗一点,就是把图像从带颜色的光照中恢复原本的色彩。很多时候,由于环境 光不是纯白色,本来呈现白色的物体,比如说墙、白纸等,就会呈现出偏黄或者偏蓝的颜 色。白平衡的功能就是把图像中显示的颜色从这种颜色拉回白色。就和曝光补偿一样,很 多摄像机是带手动或自动色温功能的,这个算法就是自动白平衡算法。这里我将根据中文 文献中的算法来解释并分析我编写的 MATLAB 程序,之后再对比英文文献中算法的效果, 并分析区别产生的原因。我自己编写的代码如下:
fx=imread('test1.jpg'); f=im2double(fx); [m,n]=size(f); n=n/3; f1=zeros(m,n,3); mr=0; mg=0; mb=0; ar=0; ag=0; ab=0; for i=1:m for j=1:n if(mr<f(i,j,1)) mr=f(i,j,1); end if(mg<f(i,j,2)) mg=f(i,j,2);
的点并不是一个点或者某一个分量的最大值,而是强度高于一个界限的所有点,默认采用的参 数是图像中前 4%亮的点的参数。其次其用来计算增益的模型是一个三次函数模型,比我们使用 的模型参数更多,也就有更好的矫正效果。 当然即使如此,这种算法也不是最有效的白平衡算法。根据不同的场景,各种白平衡算法也各 有优势和劣势。
这里采用了中文文献中提到的第三个算法。也就是 GW 和 PR 正交组合算法。这个算法融合了之 前提到的两个算法,因此首先要理解之前两个算法,才能帮助我们理解这里用到的算法。首先 我们界理论假设: 任一幅图像,当它有足够的色彩变化,则它的 RGB 分量的均值会趋于相等。也就是说当图像的色彩足够丰富时,rgb 三个值的平均数会趋 于相等。在这个假设的前提下,就有了这样一种白平衡算法:
之后这一串复杂的式子就是解方程的过程。通过移项与加减消元的算法可以通过一个通道的平 均值与最大值求出一个通道的 u 值,进而通过带入消元的方法求出对应的 v 值。随后把这两个 值带入白平衡公式,就得到了最后白平衡的结果。 然后我们来对比两个算法得到的白平衡结果:
最上面的图是原图,而下面两张图则是分别用两种方法白平衡的结果。左边那张图是用上述程 序实现的白平衡,右边那张图则是用英文文献中的算法实现的。从大体的颜色趋势上来看,左 边的图红色分量偏多,而右边的图蓝色分量偏多。而本身室内真正的颜色应该是没有偏向的, 应该是介于二者之间,可能更偏向右图一点。而导致这一效果的原因应该是两种白平衡算法上 的区别。 前面介绍过第一种算法,右边这张图采用的算法具有更强的适应性与更小的误差。首先其采样