let*_*aik 14
前段时间我写了一个名为rawpy的libraw/dcraw包装器.它很容易使用:
import rawpy
import imageio
raw = rawpy.imread('image.nef')
rgb = raw.postprocess()
imageio.imsave('default.tiff', rgb)
Run Code Online (Sandbox Code Playgroud)
它本身与numpy数组一起工作,并支持许多选项,包括直接访问未处理的Bayer数据.
这是一种使用rawkit将canon CR2图像转换为友好格式的方法,该方法适用于当前的实现:
import numpy as np
from PIL import Image
from rawkit.raw import Raw
filename = '/path/to/your/image.cr2'
raw_image = Raw(filename)
buffered_image = np.array(raw_image.to_buffer())
image = Image.frombytes('RGB', (raw_image.metadata.width, raw_image.metadata.height), buffered_image)
image.save('/path/to/your/new/image.png', format='png')
Run Code Online (Sandbox Code Playgroud)
使用numpy数组在这里不是很优雅,但至少它可以工作,我无法想象如何使用PIL构造函数来实现相同的目的.
小智 0
我不确定 Python 成像库 (PIL http://www.pythonware.com/products/pil/ ) 中的 RAW 支持有多广泛,但您可能想检查一下。
否则,你可以直接调用 dcraw,因为它已经很好地解决了这个问题。