主要内容

illumpca

用主成分分析(PCA)估算光源

描述

例子

光源= illumpca (一个估计场景在RGB图像中的光照一个利用主成分分析(PCA)从大的颜色差异。

光源= illumpca (一个百分比使用指定的最暗和最亮像素的百分比估计光照。

光源= illumpca (___“面具”,面具仅使用由二进制掩模定义的感兴趣区域内的像素估计光照。

例子

全部折叠

打开图像并显示它。指定可选放大倍数以缩小显示图像的大小。

一个= imread (“foosball.jpg”);图imshow (,“InitialMagnification”、25)标题(原始图像的

图中包含一个轴对象。标题为“Original Image”的axis对象包含一个类型为Image的对象。

主成分分析假设RGB值是线性的。然而,JPEG文件格式将图像保存在伽马校正的sRGB颜色空间中。方法撤消伽玛校正rgb2lin函数。

A_lin = rgb2lin(一个);

估计场景的照明从最暗和最亮3.5%的像素(默认百分比)。因为输入图像是线性的,所以illumpca函数返回线性RGB颜色空间中的光源,

光源= illumpca (A_lin)
光源=1×30.4075 0.5547 0.7254

的第三个系数光源是最大的,与图像的蓝色调一致。

通过提供估计的光源来校正颜色chromadapt函数。

B_lin = chromadapt (A_lin光源,“色彩”“linear-rgb”);

要在屏幕上正确显示白平衡图像,请使用lin2rgb函数。

B = lin2rgb (B_lin);

显示校正后的图像,设置可选放大倍数。

图imshow (B,“InitialMagnification”、25)标题(“使用主成分分析的白平衡图像”

图中包含一个轴对象。使用主成分分析的标题为White-Balanced Image的轴对象包含一个Image类型的对象。

输入参数

全部折叠

RGB图像,指定为——- - - - - -n3数值数组。

数据类型:||uint8|uint16

为光源估计保留的像素百分比,指定为范围(0,50)内的数字标量。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

图像掩码,指定为——- - - - - -n逻辑或数字矩阵。掩码表示输入图像的像素一个在估计光源时使用。中的计算不包括像素一个对应于掩码值为0。默认情况下,掩码都是1,所有像素都在一个包括在估计中。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

输出参数

全部折叠

场景照明的估计,作为一个3元素的数字行向量返回。这三种元素对应于发光体的红、绿、蓝值。

数据类型:

提示

  • 该算法假设光照均匀,RGB值线性。如果您使用的是非线性sRGB或Adobe RGB图像,请使用rgb2lin函数在使用前撤消伽玛校正illumpca.另外,请确保将经过颜色调整的图像转换回sRGB或Adobe RGBlin2rgb函数。

算法

像素颜色在RGB颜色空间中以向量表示。该算法根据颜色在图像中平均颜色上的投影亮度或标准对颜色进行排序。根据这个顺序,算法只保留最暗和最亮的颜色。然后对颜色子集进行主成分分析(PCA)。主成分分析的第一个成分表示光源估计。

参考文献

程东亮,迪利普·k·普拉萨德,迈克尔·s·布朗。《颜色恒常性的光源估计:为什么空间域方法有效以及颜色分布的作用》美国光学学会学报.第31卷第5期,2014年,第1049-1058页。

介绍了R2017b