【问题标题】:RAW Image processing in Python [closed]Python中的RAW图像处理[关闭]
【发布时间】:2010-03-11 01:59:29
【问题描述】:

是否有任何 Pythonic 解决方案来读取和处理 RAW 图像。即使它只是访问原始照片文件(例如 cr2 或 dng),然后将其输出为 jpeg。

理想情况下,python 的 dcraw 绑定,但任何其他可以完成的事情也足够了。

【问题讨论】:

    标签: python image dng dcraw


    【解决方案1】:

    不久前,我编写了一个名为 rawpy 的 libraw/dcraw 包装器。它很容易使用:

    import rawpy
    import imageio
    
    raw = rawpy.imread('image.nef')
    rgb = raw.postprocess()
    imageio.imsave('default.tiff', rgb)
    

    它与 numpy 数组一起工作,并支持很多选项,包括直接访问未处理的拜耳数据。

    【讨论】:

      【解决方案2】:

      ImageMagick 支持most RAW formats 并提供Python bindings

      至于 Python 的 dcraw 绑定:dcraw 是用 C 编写的,因此您可以通过 ctypes module 访问它。

      【讨论】:

        【解决方案3】:

        这是一种使用 rawkit 将佳能 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')
        

        在这里使用 numpy 数组不是很优雅,但至少它可以工作,我不知道如何使用 PIL 构造函数来实现。

        【讨论】:

        • 您正在将 jpeg 格式保存到具有 png 扩展名的文件中。
        • 谢谢,修正了错字。
        • rawkit 不支持 libraw 0.19+ 现在是 Ubuntu 默认版本...
        【解决方案4】:

        试试http://libopenraw.freedesktop.org/wiki/GettingTheCode

        Git 存储库: git://anongit.freedesktop.org/git/libopenraw.git

        源码树中有一个python目录。 ;-)

        【讨论】:

          【解决方案5】:

          我不确定 Python 图像库 (PIL http://www.pythonware.com/products/pil/) 对 RAW 的支持有多广泛,但您可能想看看。

          否则,你可以直接调用 dcraw,因为它已经很好地解决了这个问题。

          【讨论】:

          • PIL 不做 RAW(至少,不是 CR2 或 DCR)。
          【解决方案6】:

          我发现了这个:https://gitorious.org/dcraw-thumbnailer/mainline/blobs/master/dcraw-thumbnailer

          它将 dcraw 作为来自 python 的进程调用并将其转换为 PIL 对象。

          【讨论】:

            猜你喜欢
            • 2010-09-10
            • 1970-01-01
            • 1970-01-01
            • 2013-11-06
            • 2013-01-13
            • 2011-11-21
            • 1970-01-01
            • 2011-02-24
            • 2013-02-08
            相关资源
            最近更新 更多