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

时间:2016-07-22 02:08:19

标签: r matlab photoshop

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

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

  2. 包中的
  3. getChannels()" pixmap"在R回报(0.6431535, 0.3817427,0.3112033):它们似乎正常化了。将点1中获得的值除以pic中红色通道的范围 ([0,241])获得完全相同的值。绿色和蓝色通道的范围是[0,187]和[0,176]。

  4. Photoshop会返回略有不同的值:(160,95,77)。

  5. 为什么这些方法会返回不同的RGB值?任何帮助将不胜感激。

    更新信息:

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

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

    我发现如果我在photoshop中将颜色模式从RGB转换为CYMK,那么pic看起来与Matlab中的相同。

1 个答案:

答案 0 :(得分:1)

Matlab和R专为科学或技术应用而设计,可直接读取图像。然而,Photoshop专为美学应用而设计,并且更关注给定图像的整体外观。图像中颜色表示的一个更重要的事情是它被获取的colour space,定义了可表示色调的范围(或gamut)。

虽然您没有向我们展示有问题的图像,但如果它缺少嵌入的配置文件,Photoshop很可能会假设您的图像位于标准RGB色彩空间sRGB中。由于您的显示器可能具有不同的色域,并且默认情况下,Photoshop使用Adobe RGB来表示图像(因为它比sRGB略宽),它可能会将其静默转换为“新”空间。如下图所示,两者略有不同:

Adobe RGB

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

简而言之,如果你想制作精彩的假日快照,请使用Photoshop。如果你想做好科学,那就远离它吧。