MATLAB图像处理:11:计算测试图上CIE94颜色的色差


Home


本示例说明如何使用CIE94标准计算测量色和参考色的色差。默认情况下,measureColor函数使用CIE76标准计算测试图上测得的颜色和参考颜色之间的色差。您可以使用imcolordiff函数通过CIE94或CIEDE2000标准计算色差。
将X-Rite®ColorChecker®图表的图像读取到工作区中。

 I = imread('colorCheckerTestImage.jpg');

创建一个colorChecker对象,然后显示带有ROI批注的图表。
 chart = colorChecker(I);
 displayChart(chart)


测量每个色标ROI中的颜色,然后在表colorTable中返回测量值。Delta_E表格变量中的色差测量结果遵循CIE76标准。
 colorTable = measureColor(chart);

在色块图上,显示测得的颜色和参考色,并在每个色块上叠加相应的CIE76色差。
 displayColorPatch(colorTable)


将参考值L * a * b *和测量的RGB颜色值提取到表格中。
 referenceLab = colorTable{:,{'Reference_L','Reference_a','Reference_b'}};
 measuredRGB = colorTable{:,{'Measured_R','Measured_G','Measured_B'}};

将测量的RGB颜色转换为L * a * b *颜色空间,并指定D50白点。
 measuredLab = rgb2lab(measuredRGB,"WhitePoint","d50");

使用imcolordiff函数计算色差,指定颜色确保测量值在L * a * b *颜色空间中。默认情况下,此功能使用CIE94标准计算色差。
 dE = imcolordiff(measuredLab,referenceLab,"isInputLab",true);

使用新的色差测量值创建新的色表。
 colorTable94 = colorTable;
 colorTable94{:,"Delta_E"} = dE;

在色块图上,显示测得的颜色和参考色,并在每个色块上叠加相应的CIE94色差。
 displayColorPatch(colorTable94)


======================================================================
我的测试结果及程序
下面是我测试的代码:

 


注:本文根据MATLAB官网内容修改而成。