为什么 Photoshop 的 RGB 值与 Matlab 和 R 不同?

Why Photoshop has different RGB values from Matlab and R?

这是我的问题。我有一个 bmp 文件并尝试获取图片的 RGB 值。我使用了 4 种不同的方法来实现这一点,在 Matlab 中读取,在 R 中封装 "bmp" 和 "pixmap",photoshop。但是,对于相同的像素点,这4种方法return取值略有不同。

    Matlab 中的
  1. imread() 和 R return 包 "bmp" 中的 read.bmp() 相同的值:(155, 92, 75)

  2. getChannels() 包 "pixmap" 在 R returns (0.6431535, 0.3817427, 0.3112033): 它们似乎被归一化了。将第1点得到的值除以图中红色通道的范围 ([0,241]) 获得完全相同的值。并且绿色和蓝色通道的范围是[0,187]和[0,176]。

  3. Photoshop returns 值略有不同:(160, 95, 77).

为什么这些方法 return 的 RGB 值不同?任何帮助将不胜感激。

更新信息:

原图(在 Mac ox 和 ps 中使用预览打开): original

Matlab imread() 和 imshow() 图片: Matlab version

而且我发现如果我在 photoshop 中将颜色模式从 RGB 转换为 CYMK,图像看起来与在 Matlab 中的非常相似。

Matlab 和 R 是为科学或技术应用而设计的,将直接读取图像而不会改变。然而,Photoshop 是为美学应用而设计的,并且更关心给定图像的整体外观。与图像中的颜色表示有关的更重要的事情之一是 colour space it was acquired in, defining the range (or gamut) 可表示的阴影。

虽然您没有向我们展示相关图像,但很可能如果它缺少嵌入式配置文件,Photoshop 会假设您的图像是标准 RGB 颜色 space,sRGB。由于您的显示器可能具有不同的色域,并且默认情况下 photoshop 使用 Adob​​e RGB 来表示图像(因为它比 sRGB 稍宽),它可能会自动将其转换为 "new" space。如下图,两者略有不同:

-- 因此报告的值略有不同。

简而言之,如果您想拍出精彩的假期照片,请使用 Photoshop。如果你想做好科学,就离它远点。