主要内容

colorangle

两个RGB向量之间的角度

描述

例子

= colorangle (rgb1rgb2计算两个RGB向量之间的角度。

例子

全部折叠

读取测试图像。图像是使用佳能EOS 30D数码相机捕获的原始数据在纠正黑级并将强度缩放为每像素的16位。没有采用去脱模,白色平衡,颜色增强,噪声滤波或伽马校正。

raw = imread(“foosballraw.tiff”);

插值使用demosaic函数获取彩色图像。滤色器阵列图案为RGGB。

a = demosaic(原始,“rggb”);

显示图像。因为图像处于线性RGB颜色空间中,所以应用伽马校正使图像正确地出现在屏幕上。

a_srgb = lin2rgb(a);imshow(a_srgb)

图中包含一个轴对象。axis对象包含一个image类型的对象。

该图像包含X-Rite®ColorChecker®图表。指定地面真值光源,该光源是使用图表中的中性斑块提前计算出来的。

Illuminant_groundtruth = [0.0717 0.1472 0.0975];

为了避免扭曲光源的估计,通过创建蒙版来排除ColorChecker图。

mask = true(size(A,1), size(A,2));面具(920:1330 1360:1900)= false;

运行三种不同的光源估计算法:illumwhiteIllumgray.,illumpca

illuminant_whitepatch = illumwhite (,“面具”,面具);illuminant_grayworld = illumgray (,“面具”,面具);illuminant_pca = illumpca (,“面具”,面具);

通过计算每个估计光源和地面真实之间的角度,将每个估计与地面真实相比较colorangle函数。角度越小,估计越好。估计的大小并不重要,因为只用光源的方向来白平衡具有彩色适应的图像。

Angle_whitepatch = colorangle(illuminant_whitepatch, illuminant_groundtruth)
angle_whitepatch = 5.0921
= colorangle(illuminant_grayworld, illuminant_groundtruth)
angle_grayworld = 5.1036
Angle_pca = icorarangle(Illuminant_pca,Illiminant_groundtruth)
angle_pca = 5.0134

的价值angle_pca最小,说明PCA光照估计算法最接近该图像的地面真实光照。

输入参数

全部折叠

第一个RGB向量,指定为3元素数字向量。

数据类型:||uint8|uint16

第二个RGB向量,指定为3元素数字向量。

数据类型:||uint8|uint16

输出参数

全部折叠

RGB向量之间的角度,返回为数字标量。

数据类型:

更多关于

全部折叠

角误差

角度误差是一个有用的度量标准,用来评估光源对地面真实值的估计。地面真光源与估计光源的夹角越小,估计越好。

介绍了R2017b