Matlab 将图像恢复为其原始颜色



我想拍一张照片。

图片中的颜色与我眼睛中看到的颜色不同。

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

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

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

这样,我的纸张将被更改为正确的RGB [255 0 0]然后我可以确定其余所有图片的RGB都已更改为其原始颜色。

你怎么看这种方式?

您尝试执行的操作称为颜色管理/颜色校正。

我有几点意见:

  • 首先,必须确保显示器已校准。如果没有校准,进行目视检查是没有意义的。如果您有标准的消费类显示器,则可能根本无法对其进行校准。
  • 为什么假设论文的RGB是[255,0,0]?它可以稍微绿一点,也可以更蓝一点。您应该使用已知的目标,例如Macbeth ColorChecker
  • 如果光量发生变化,您正在使用的偏移变换将不起作用。相反,它应该是乘法才能与照明强度不变。查看颜色校正的标准方法,颜色校正矩阵。
  • 您将需要多种已知颜色。三是校准矩阵的绝对最小值。

您可以尝试使用白纸而不是红色。通过这样做,您将获得有关三种颜色的信息,而不仅仅是红色。在理想情况下,白皮书的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

我读到了一个关于颜色校正的迭代过程,也许可以应用于您的情况:

海伦在 7 个简单步骤中使用 Photoshop 进行校正布拉德利

不过,请确认它按预期工作

祝你好运

相关内容

  • 没有找到相关文章

最新更新