Matlab将图像恢复为原始颜色

时间:2012-10-11 15:28:01

标签: image matlab rgb restore

我过去曾问过,有人建议我使用MACBETH,但我没有足够的资金来使用它:/

enter image description here

所以在我拍摄之前,我已经在图像中添加了3个圆圈作为图像中的位置:第一个圆圈为红色,RGB为[255 0 0],第二个圆圈为绿色圆圈,RGB为[0 255 0] ],第三个是蓝色[0 0 255]。因此,我可以看到每个像素平均值的变化,并通过这种变化来修复整个图像。

我拥有每个圆圈的所有像素。我得到了像素的平均值,接下来我做了:

红色圆圈所有包含像素的平均RGB为[243 15 26]。

绿色圆圈所有包含像素的平均RGB为[29 235 56]。

关于蓝色圆圈是[14 33 250]。

如何通过新的红色\绿色\蓝色圆圈RGB的结果来修复图像中每个像素的颜色?

1 个答案:

答案 0 :(得分:1)

如果您采用线性颜色映射,则可以构建一个描述原始颜色变化的线性系统,例如: (0,0,255)观察到的颜色,例如。 (14,33,250)。

基本上,y = A * x,其中x是原始颜色,y是观察到的颜色,A是变换矩阵。

计算A后,可以将其反转以获得从y到x所需的变换。然后,您可以对所有像素应用A ^( - 1)进行线性颜色校正。