本示例说明如何使用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官网内容修改而成。
欢迎您进一步了解以下MATLAB系列文章:
吃小羊:MATLAB作图实例:00:索引zhuanlan.zhihu.com