一杯清酒邀明月
天下本无事,庸人扰之而烦耳。

我们上几期的真相系列文章讨论了信噪比(做成像的你不能不了解的真相3 - 信噪比1;做成像的你不能不了解的真相3 - 信噪比2) 和灰度值与电子数的换算(增益Gain, 灰度值与电子数-做成像的你不能不了解的真相4)。本期我们以Image J 为例,讨论一下怎样使用图像分析软件,对图像的信噪比进行定量分析。

理论上说,信噪比是对每个像素亮度变化的统计分析。即使在相同条件下拍照,由于噪声的存在,同一像素的亮度是变化的。测量信噪比,需要在同样条件下拍摄多张图像,然后对感兴趣的像素在这一系列图像中的亮度做统计分析: 这些亮度的平均值为信号,标准方差为噪声。

然而,现实中我们通常只有一张图像,以上的分析很难实现。以下我们讨论只有一张图像时,简化的信噪比分析方法。

 

01感兴趣区域(ROI) 的直方图统计分析

当感兴趣区域(ROI)内的信号均匀时,这个区域内的像素亮度的平均值代表信号,标准方差代表噪声。当这个区域的像素有足够数量时,比如100个或以上,即使只有一张图像,分析的结果和上述使用多张图像的分析结果相同。

例1

测量一台相机的偏置 (offset)和读出噪声(read noise)。我们把显微镜的光设置为全部到目镜,或者盖上相机的镜头盖,用很短的曝光时间(比如1ms),这张图像中仅含偏置offset和读出噪声 read noise,没有信号,称为Bias图像。

显然,此时满足以上我们说的分析区域的信号均匀的条件。那么,只要测量这张图像上所有像素的亮度平均值和标准偏差,我们就能得到想要的结果了。

打开Image J, Analyze –> Histogram (直方图)。 这时我们看到的Histogram 窗口中 Mean 就是信号平均值(此时为offset), Std.Dev 就是噪声(此时为读出噪声)。 当然,这里的单位还是灰度值(ADU)。我们需要知道此时的增益 (Gain), 就能把读出噪声换算成以电子数为单位了。Offset 通常习惯就用ADU的值。 此例中,相机Gain = 0.21e-/ADU,因此:

读出噪声 = Std.Dev * Gain = 8.279 * 0.21 = 1.74 e-.

 

 分析以下图像黄色的感兴趣区域的信噪比。我们已知这个区域亮度是均匀的,首先使用Image J的ROI工具定义该区域。ROI可以是矩形,圆形,任意多边形,甚至可以是一条线段。

 

 这个例子使用矩形比较合适。定义好ROI后,使用以上描述的方法,可以得到mean为586,Std.Dev 为47.8。

 

 

已知相机的offset为103,以上ROI区域信噪比为:(587-103) / 47.8 = 10.12

注意,因为是比值,没有换算为电子数,对结果没有影响。

那这个区域信号的电子数是多少呢?因为Gain = 0.21e-/ADU,所以:

信号 = (587-103)*0.21 = 101.6 e-

之前说过,当图像工作在光子信号噪声限制区(Shot Noise Limited)时,信噪比等于信号电子数的平方根,即

和统计分析得到的结果符合,是不是很神奇?

再换个角度验证这个方法的正确性。上面的图像我们实际拍摄了100帧。同样使用Image J,我们随机定义黄色区域内的某一个像素为ROI(只有一个像素的ROI),然后用Image >Stacks> Plot Z-axis Profiles。

 

 得到100张图像中这个像素的亮度数据如下。

点击这个曲线图下方的More-Copy All Date, 可以把数据复制到excel做统计分析。

以下是随机选取的4个点的结果。 可见,对亮度均匀的ROI, 使用多张图法和单张图法得到的结果是一致的。

以上方法,大家仔细想想就知道,需要ROI内包含一定数量的像素。像素个数越多,得到的结果越准确。给个参考值,大概100个像素就很好了。

强调一下,这种方法适合ROI亮度均匀的情况。当分析区域的信号不均匀时,比如样品结构变化,计算出的标准方差不仅包含噪声,也包含样品结构信息,这时就不能使用上述方法了。

 

02线形强度(Line Profile)统计分析

如果把线(line)也作为一种特殊的ROI, 这个方法其实和上面的方法没有本质区别。我们知道,有些实际的图像,感兴趣的区域可能是线形的。比如下图,想分析线形结构的信噪比,如黄色曲线标出的部分。

 

 

 Image J 的ROI定义工具可以定义直线,折线或自由曲线,如下图:

 

 定义好线后,选 Analyze >Plot Profile

 

 我们就能得到下面的亮度曲线图。点这个图左下方的List,还能得到右边的数据表。

 

 

在Plot 曲线窗口,选More> 同样可以把这些数据复制粘贴到excel做统计分析,得到这条曲线下的像素点的mean和Std.dev 值, 从而计算出SNR。

和ROI直方图方法类似,这个分析也要求线段有一定长度,越长测量结果的统计意义越好。

在实际评价图像时,我们也经常使用这个Line Profile工具, 快速对图像的信噪比有个大致的了解。如下图,从左到右,图像信噪比提高。相应的Line Profile表现为高频成分减小。

 

 或者,做相机灵敏度对比:中间的Line Profile曲线,清楚的体现了左右两种相机的灵敏度差别。

 

 

03通过测量小区域的平均亮度,使用理论公式计算

如果要分析的对象,均匀的ROI或较长的Line都比较难定义,如下面图像上亮的块状或点状区域,这时可以先测量小的ROI的平均亮度,换算为电子数,再通过理论信噪比公式来计算。

 

 关于理论信噪比公式,这里我们来复习一下:

同样,使用ROI工具,定义ROI。

 

 这次,我们使用Analyze > Measure 工具

 

 

 每次测量可以得到右边窗口的一行结果。可以多次对多个区域测量。

 

 

这次我们只使用mean值,因为此时ROI 太小,Std.Dev没有准确的统计意义。以上得到的mean的单位为ADU,乘以Gain后换算为电子数。如果强度足够大(比如对sCMOS相机>50e-),能肯定相机在光子信号限制区域(因为读出噪声<2e-), 直接计算平方根就得到SNR了。注意,计算时要先减去offset。

如果信号比较弱,在Read Noise 限制区或过度区,比如我们前面例子的相机,如果信号在10e- 以下,最好把读出噪声计算在内,用我们用过的完全的公式:

 

 

当然,这个方法有一定误差,因为使用的样本点较少,得到的平均值精度受影响。所以在允许的情况下,应该尽量把ROI定义大一些。

 

 

以上我们讨论了基本的信噪比分析方法。希望能对你的工作有帮助。到此我们的不能不了解的真相系列文章也告一段落了。请继续关注我们后续的相机技术文章。

posted on 2020-02-13 17:12  一杯清酒邀明月  阅读(3597)  评论(0编辑  收藏  举报