这个问题是我上一个dng-raw-pictures-imported-as-16-bit-deep-but-unexpected-plt-show-result的后续问题,之后我继续我的搜索。
由于所得到的答复在16位内得到了可视化,但每个通道的信道工作良好。我决定采取一系列的50偏置帧。这是与ISO 100和曝光时间为1/800 0(最低ISO曝光最短)在完全黑暗中拍摄的照片。当没有光线进入时,偏置帧显示传感器看到了什么,传感器后面的ADC应该为每个像素提供一个"0“值。情况并不总是如此,我想分析一下这个值变化了多少。我不期望有很大的变化或大的错误值。
用我在前面的问题中解释的方法,我一个一个地读我的50帧,然后看一个随机像素的R,G,B值(随机的,但总是相同的),让我们说位置1500,1500的像素。
在运行该序列时,我将像素值与行和列的平均值进行比较。除了平均值之外,我还计算了行和列的标准偏差。
这就是我发现的:

就我个人而言,我发现这些波动是巨大的,而且对于一个14位深度的ADC来说,我并没有预料到这一点。我看数据的方式可能有问题,但我很犹豫,但我担心它又会与ColorMapping、解禁等东西有关。
为了进行交叉检查,我想确保我从Python脚本获得的像素1500,1500的值可以被复制。为此,我安装了ImageJ,或者在其上一个版本斐济中也调用了它。使用DCRAWreader插件,我可以读取相同的16位帧,并使用像素检查工具,以查找位置1500,1500的著名像素值。
ImageJ值与我用Python.获得的值不一致。
我现在的问题是:“我应该如何解释用Python上传的图片像素背后的rgb数字?它们与像素传感器中产生的电子数量有什么关系,并由ADC转换成数字值?”
发布于 2017-07-31 19:28:08
在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_image (一个二维numpy数组),对非插值的原始拜耳数据进行分析。
电子的数目和原始值之间应该有或多或少的线性关系,但是如果不给电子计数分配原始值几乎是不可能的。这一点尤其适用于消费者级相机,它甚至适用于原始值的转换。
https://stackoverflow.com/questions/41496484
复制相似问题