2

这个问题是我之前的一个dng-raw-pictures-imported-as-16-bit-deep-but-unexpected-plt-show-result的后续问题,之后我继续搜索。

由于回复获得了 16 位的可视化,但每个通道的通道运行良好。我决定拍摄一系列 50 个 BIAS 帧。这是在完全黑暗中使用 ISO 100 和 1/8000 秒曝光时间(最低 ISO 的最短曝光)拍摄的照片。偏置帧显示传感器在没有光线进入时看到的内容,传感器后面的 ADC 应该为每个像素提供一个“0”值。情况并非总是如此,我想分析一下这个值有多少变化。我不希望有大的变化或大的错误值。

使用我上一个问题中解释的方法,我一一读取我的 50 帧并查看随机像素的 R、G、B 值(随机但始终相同),让我们说位置为 [1500, 1500]。

在运行序列时,我将像素值与行和列的平均值进行比较。除了平均值之外,我还计算了行和列的标准偏差。

这是我发现的:

分析 ISO 100,Exp 1/8000s

就我个人而言,我发现这些波动很大,没想到对于 14 位深度的 ADC 会出现这种情况。可能我查看数据的方式有问题,我犹豫了一下,但担心它再次与 ColorMapping、Demosaicing 等有关。

为了进行交叉检查,我想确保我从 Python 脚本中获得的像素 [1500,1500] 的值可以重现。因此,我安装了 ImageJ 或者也调用了它的最新版本 Fiji。使用 DCRAWreader 插件,我可以读取相同的 16 位帧并使用像素检查工具来查找位置 [1500,1500] 中著名像素的值。

ImageJ 值与我使用 Python 获得的值不对应。

我现在的问题是:“我应该如何解释在 Python 中上传的图片像素背后的 rgb 数字?它们与像素传感器阱中产生并由 ADC 转换为数字值的电子数量有何关系? "

4

1 回答 1

1

可以在https://letmaik.github.io/rawpy/api/rawpy.Params.html找到后处理选项及其默认值。

在创建偏差帧的统计信息时,您需要禁用任何自动调整亮度等机制。以下选项应该使您的图更有意义output_bps=16, no_auto_scale=True, no_auto_bright=True, gamma=(1,1)

您还可以更进一步,通过访问raw.raw_image2D numpy 数组对未插值的 RAW Bayer 数据进行分析。

电子数量和 RAW 值之间应该或多或少存在线性关系,但是如果没有校准,几乎不可能将 RAW 值分配给电子计数。对于甚至对 RAW 值应用变换的消费级相机来说尤其如此。

于 2017-07-31T19:28:08.060 回答