使用Python和Pillow将8位PNG转换为32位EXR

使用Python和Pillow将8位PNG转换为32位EXR,python,image,python-imaging-library,Python,Image,Python Imaging Library,我试图读取一个PNG文件,将0-255 RGB值转换为0.0-1.0浮点值,对它们执行一些手动操作,然后将其保存为32位浮点EXR文件 加载图像并打印其中一种像素颜色时(转换前,使用im.getpixel((0,0)),显示(57,52,34) 因此,我尝试使用im=im.convert('F')将其转换为32位图像,然后打印im.getpixel((0,0)),它显示51.44300079345703 为什么只有一个值?它不应该是一个每个通道都有一个浮动的touple吗 我希望它是(0.223

我试图读取一个PNG文件,将0-255 RGB值转换为0.0-1.0浮点值,对它们执行一些手动操作,然后将其保存为32位浮点EXR文件

加载图像并打印其中一种像素颜色时(转换前,使用
im.getpixel((0,0))
,显示
(57,52,34)

因此,我尝试使用
im=im.convert('F')
将其转换为32位图像,然后打印
im.getpixel((0,0))
,它显示
51.44300079345703

为什么只有一个值?它不应该是一个每个通道都有一个浮动的touple吗

我希望它是
(0.2235,0.2039,0.1333)


如果你想玩。提前谢谢你的帮助:)

我对图像处理一无所知,但我不认为模式“F”是你想象的那样。表示您应该期望一个浮点值。我怀疑这个值是灰度强度值。我知道。。。阅读之后,我似乎还需要使用OpenEXR库/而不是。我刚刚发现。也许这也有帮助。
pillow
模块不支持EXR图像格式,该格式每通道16位(半精度)浮点组件。正如您所发现的,它的
“F”
模式具有单个32位浮点像素值。它支持的模式已列出。您可以将RGB图像拆分为三个灰度图像,并将每个灰度图像转换为单独的
“F”
图像,这将为您自己创建EXR图像提供所需的信息。