我两次解释了我的问题,因为我的英语不好:/
先解释一下:
在我拍摄的一些图像中,我有每个像素的 RGB 矩阵。
此外,我有 3 个像素的 RGB,我知道它们的真实值(在我拍照后,像素的 RGB 值会因为光线而改变)。
如何使用这 3 个已知的 RGB 来使用最小二乘法,以便准确地获得原始图像颜色?
第二个解释:
我必须用我的相机拍一些苹果的照片。如果我在我的房间和街上拍摄相同的苹果,我会得到与苹果颜色不同的图像,尽管它们是相同的苹果。这是因为街上的灯不是我房间里的灯。
为了解决这个问题,我想在苹果附近放置三个我知道它们 RGB 的圆圈(红色、绿色和蓝色)。例如,我有 3 个圈子:
红圈-> [241 25 13]
绿色圆圈-> [12 239 41]
蓝色圆圈-> [35 28 237]
现在,我将用 3 个圆圈拍摄苹果。我知道我的 3 个圆圈的 RGB 发生了变化:
现在红圈是 [229 42 32]
绿色圆圈-> [24 241 42]
蓝色圆圈-> [29 26 230]
现在,有了这些信息(3 个圆圈的输入和输出 RGB),我想修复所有图像(苹果和 3 个圆圈)的颜色。
所以我的输入是:
(三个圆圈的初始RGB,我拍摄后这些圆圈的RGB)
并且输出必须是一个函数:(R,G,B) -> (new R, new G, new B)。
所以该功能必须修复图片中的所有RGB,
对于我之前的例子:
红圈 [229 42 32] 将更改为他原来的 [241 25 13]
绿色圆圈 [24 241 42] -> [12 239 41]
蓝色圆圈[29 26 230] -> [35 28 237]
所以,如果我拍摄并得到一个 RGB 为 [142, 124, 211] 的苹果,我想用他的 RGB 运行函数并获得这个苹果的真实颜色。
有人告诉我,我可以使用最小二乘法。