假设我们在一个图像中有5个圆的l,a,b值。这些值是使用OpenCV计算的。
imlab=cv2.cvtColor(circle_img_only,cv2.COLOR_BGR2LAB).astype("float32")
Run Code Online (Sandbox Code Playgroud)
实际上,我们从每个圆中获取100个随机像素,然后为每个圆计算正常的平均LAB值(我不确定这是正确的方法)
值是np.array,类似于以下内容:
LAB Measured Colors Values =
[[ 27.553 -26.39 7.13 ]
[ 28.357 -27.08 7.36 ]
[ 28.365 -27.01 7.21 ]
[ 29.749 -27.78 7.42 ]
[ 28.478 -26.81 7.14 ]]
Run Code Online (Sandbox Code Playgroud)
这些圆也使用比色计仪器测量。比色计产生参考值。
LAB Reference Colors Values =
[35.07, -24.95, 3.12]
[35.09, -24.95, 3.18]
[35.0, -25.6, 3.21]
[34.97, -25.76, 3.36]
[35.38, -24.55, 2.9]
Run Code Online (Sandbox Code Playgroud)
让我们将LAB测量颜色值称为m1 让我们将LAB参考颜色值称为m2
我们有测量值和参考值。我们如何计算CCM-色彩校正矩阵?
我使用以下方法做到这一点:
def first_order_colour_fit(m_1, m_2 , rcond=1):
"""
Colour Fitting
==============
Performs a first order colour fit from given :math:`m_1` colour array …Run Code Online (Sandbox Code Playgroud)