Matlab将图像恢复为原始颜色

时间:2012-06-02 22:26:22

标签: image matlab image-processing colors color-management

我想拍一些照片。

图片中的颜色与我眼中的颜色不一样。

所以为了解决这个问题,我决定放一张红纸(用RGB:[255 0 0]),然后拍一张包含这篇文章的照片。

如果我看到纸张的RGB发生了变化(例如[243 15 7]), 我将通过下一个方式更改图片中的所有RGB:

  • R (红色),它将按值12添加。
  • G (绿色),它将被值15减去。
  • B (蓝色),它将被值7减去。

通过这种方式,我的论文将被更改为正确的RGB [255 0 0],然后我可以确定所有其余图片的RGB都已更改为其原始颜色。

您如何看待这种方式?

3 个答案:

答案 0 :(得分:5)

您要做的是称为色彩管理/色彩校正。

我有一些评论:

  • 首先,您必须确保您的显示器已校准。如果没有校准,进行目视检查是没有意义的。如果您有标准的消费者监视器,很可能根本无法校准它。
  • 为什么你认为纸张的RGB是[255,0,0]?它可能会更绿或更蓝。您应该使用已知目标,例如Macbeth ColorChecker
  • 如果更改了光量,则您正在使用的偏移变换将不起作用。相反,它应该是乘法的,以对照明强度不变。查看标准的色彩校正方法Color Correction Matrix
  • 您需要多种已知颜色。三是校准矩阵的绝对最小值。

答案 1 :(得分:3)

您可以尝试使用白纸而不是红纸。通过这样做,您将获得有关三种颜色的信息,而不仅仅是红色。在完美的情况下,白皮书的RGB值将是相等的,例如,你得到(197,197,197)。但如果它们不相等,例如(190,204,203),你可以通过乘以某个数字来为每个像素更改它们:

mean = (190 + 204 + 203) / 3
red_new = red * mean / 190
green_new = green * mean / 204
blue_new = blue * mean / 203

答案 2 :(得分:2)

我读到了一个颜色校正的迭代过程,可能适用于你的情况:

Correction with Photoshop in 7 Easy Steps by Helen Bradley

然而,确认它按预期工作

祝你好运