Python 导入到numpy时,如何判断图像是否为gamma编码?

Python 导入到numpy时,如何判断图像是否为gamma编码?,python,numpy,scikit-image,Python,Numpy,Scikit Image,我对图像何时进行gamma编码/解码以及何时需要将其提升为gamma函数感到有点困惑 给定一个图像“boat.jpg”,其中颜色表示标记为“sRGB”。我的假设是,在保存过程中,通过将数组提升到^(1/2.2)来对文件中的像素值进行编码 当我使用scikit image或opencv将图像导入numpy时,我最终得到了一个uint8值的3维数组。这些值是否需要提升到^2.2以生成值的直方图,或者当我应用imread函数时,是否将图像映射到数组中的线性空间 from skimage import

我对图像何时进行gamma编码/解码以及何时需要将其提升为gamma函数感到有点困惑

给定一个图像“boat.jpg”,其中颜色表示标记为“sRGB”。我的假设是,在保存过程中,通过将数组提升到^(1/2.2)来对文件中的像素值进行编码

当我使用scikit image或opencv将图像导入numpy时,我最终得到了一个uint8值的3维数组。这些值是否需要提升到^2.2以生成值的直方图,或者当我应用imread函数时,是否将图像映射到数组中的线性空间

from skimage import data,io
boat = io.imread('boat.jpg')


您可能知道,skimage在读取图像()时使用了一些不同的插件。你得到的值不应该被调整…这发生在引擎盖下。我还建议您不要使用jpeg文件格式,因为在压缩过程中会丢失数据

  • 如果你在互联网上的任何地方得到你的图像,它有伽马2.2
  • 除非图像已编码图像配置文件,否则将从该配置文件获取伽马值
  • imread()
    按原样读取像素值,无需转换
  • 将图像转换为gamma 1.0进行任何处理都并没有意义,除非您明确知道必须这样做。基本上,没有人这样做

  • 谢谢我“明确地知道我必须这样做”。图像配置文件是否编码为元数据?@JesseMcMullen Crummey网络上的大多数图像都不包含元数据,但如果幸运的话,通常伽马值就在那里。