Rawpy 原始图像模式
Rawpy raw image pattern
我正在尝试使用 RawPy 模块读取 Python 中的原始图像并对其进行去马赛克处理。不幸的是,该模块不提供简单的去马赛克方法,而是提供不适合我的情况的完整后处理功能,因为我想保留浮点图像,而不是使用 8 位 uint。我也不想应用伽玛或任何其他后处理,所以我最终手动对它们进行去马赛克处理。当我使用加载 dng 图像的 RawPy 对象的 raw_pattern 方法时,我得到这个:
In[23] : raw_image.raw_pattern
Out[23]: array([[0, 1],
[3, 2]], dtype=uint8)
但是 Adobe 的 DNG 文档说
Digital Negative Specification
September 2012
CFAPlaneColor
...
Value
See below
Default
0, 1, 2 (red, green, blue)
我很困惑 3 是从哪里来的?
如果有其他方法去马赛克原始图像也适用,因为我很容易替换这部分项目。
提前致谢!
rawpy(或更准确地说,底层 libraw/dcraw 软件)将两个绿色通道视为单独的通道。查看 https://en.wikipedia.org/wiki/Bayer_filter,您可以看到拜耳过滤器矩阵由 4 个像素的正方形组成,这些正方形具有一个蓝色像素、一个红色像素和两个绿色像素。有两个绿色像素的原因是人类视觉对绿色更敏感,更容易注意到噪声。通过添加更多的绿色像素,可以在 demosaicing/postprocessing.
期间减少绿色通道中的噪声
与其自己去马赛克(这可能很难),另一种选择是禁用所有类型的后处理选项并输出为 16 位整数图像。我在处理天文摄影图像时使用了这种技术。从项目概述中查看此示例:
with rawpy.imread(path) as raw:
rgb = raw.postprocess(gamma=(1,1), no_auto_bright=True, output_bps=16)
imageio.imsave('linear.tiff', rgb)
我正在尝试使用 RawPy 模块读取 Python 中的原始图像并对其进行去马赛克处理。不幸的是,该模块不提供简单的去马赛克方法,而是提供不适合我的情况的完整后处理功能,因为我想保留浮点图像,而不是使用 8 位 uint。我也不想应用伽玛或任何其他后处理,所以我最终手动对它们进行去马赛克处理。当我使用加载 dng 图像的 RawPy 对象的 raw_pattern 方法时,我得到这个:
In[23] : raw_image.raw_pattern
Out[23]: array([[0, 1],
[3, 2]], dtype=uint8)
但是 Adobe 的 DNG 文档说
Digital Negative Specification
September 2012
CFAPlaneColor
...
Value
See below
Default
0, 1, 2 (red, green, blue)
我很困惑 3 是从哪里来的? 如果有其他方法去马赛克原始图像也适用,因为我很容易替换这部分项目。
提前致谢!
rawpy(或更准确地说,底层 libraw/dcraw 软件)将两个绿色通道视为单独的通道。查看 https://en.wikipedia.org/wiki/Bayer_filter,您可以看到拜耳过滤器矩阵由 4 个像素的正方形组成,这些正方形具有一个蓝色像素、一个红色像素和两个绿色像素。有两个绿色像素的原因是人类视觉对绿色更敏感,更容易注意到噪声。通过添加更多的绿色像素,可以在 demosaicing/postprocessing.
期间减少绿色通道中的噪声与其自己去马赛克(这可能很难),另一种选择是禁用所有类型的后处理选项并输出为 16 位整数图像。我在处理天文摄影图像时使用了这种技术。从项目概述中查看此示例:
with rawpy.imread(path) as raw:
rgb = raw.postprocess(gamma=(1,1), no_auto_bright=True, output_bps=16)
imageio.imsave('linear.tiff', rgb)