如何使用颜色矩阵在 C# 中使用参考颜色校准图像 (jpg/png)

How color Calibrate image (jpg/png) with Reference Color in C# using colormatrix

我有一张图片供参考。 例如特定位置的矩形。

对于 (Rectnangle) 我们已经有了它的 ideal/reference 颜色值,例如R=255, G=255, B=255.

Reactangle 的平均 RGB 有所不同,例如R=200,G=200,B=200.

所以与 ideal/reference 颜色有 R=55,G=55,B=55 偏差。

如何使用 color-matrix 来填充这个颜色空白,以便我得到校准图像?

如果有比这个更好的方法,请提出建议。

您将计算两种颜色的商,即 255 / 200,并将其输入颜色矩阵的对角线值中。即

var cr = referenceRed/ actualRed;
...
float[][] colorMatrixElements = { 
   new float[] {cr,  0,  0,  0, 0},        // red scaling factor
   new float[] {0,  cg,  0,  0, 0},        // green scaling factor
   new float[] {0,   0,  cb, 0, 0},        // blue scaling factor
   new float[] {0,   0,  0,  1, 0},        // alpha scaling factor of 1
   new float[] {0,   0,  0,  0, 1}};