Rawpy:如何在不掺杂像素数据的情况下对原始图像进行后处理?

A. *_*ard 4 python image-processing

我需要将原始NEF图像转换为numpy数组以进行定量分析。我目前正在使用rawpy来执行此操作,但未能找到后处理参数的组合,这些参数使像素数据保持不变。(我将第一个承认我也不完全了解原始文件的工作方式...)

这是我现在所拥有的:

rawArray = raw.postprocess(demosaic_algorithm=rawpy.DemosaicAlgorithm.AHD,
                                   half_size=False,
                                   four_color_rgb=False,use_camera_wb=False,
                                   use_auto_wb=False,user_wb=(1,1,1,1),
                                   output_color=rawpy.ColorSpace.raw,
                                   output_bps=16,user_flip=None,
                                   user_black=None,user_sat=None,
                                   no_auto_bright=False,auto_bright_thr=0.01,
                                   adjust_maximum_thr=0,bright=100.0,
                                   highlight_mode=rawpy.HighlightMode.Ignore,
                                   exp_shift=None,exp_preserve_highlights=0.0,
                                   no_auto_scale=True,gamma=(2.222, 4.5),
                                   chromatic_aberration=None,
                                   bad_pixels_path=None)
Run Code Online (Sandbox Code Playgroud)

let*_*aik 8

后处理,这意味着去马赛克,将始终更改原始像素值。通常,您想要的是获取线性后处理图像,以使光子数大致与像素值成线性关系。您可以执行以下操作:

rgb = raw.postprocess(gamma=(1,1), no_auto_bright=True, output_bps=16)
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,您将无法获得校准后的图像,而无法直接推断出在每个像素处撞击传感器的光子数量。另请参阅https://www.dpreview.com/forums/post/56232710

请注意,您还可以通过raw.raw_image(也请参阅Bayer矩阵)访问原始图像数据,该数据尽可能地接近传感器数据-此处不应用插值法或相机曲线等,但从科学上讲,您不会与以上所述的线性后处理图像相比,您可以获得更多的图像。