前几期真相文章得到了读者积极的反馈,其中提问最多的就是这个公式:

首先,大家觉得这个公式太有用了。以前只能定性地评价图像质量,现在一下子就能直接算出信噪比,瞬间高大上了许多有木有。然而,杯具的现实是,95%的人都找不到相机的出厂报告,也就是说并不知道自己相机的 Gain 是多少。不知道 Gain, 那这个公式岂不就成了浮云啊!

别急,本期我们就来披露分钟测算相机增益的秘笈,大家准备好打赏哈!

01公式推导

哈哈,公式是烦人的,但也是必须的。

我们知道,当相机工作在光子散粒噪声(Shot Noise)限制区时:

相机拍到的图像,亮度是以灰度值(ADU)为单位的, 我们可以用图像分析软件(如我们用过的 Image J)计算出感兴趣区 (ROI) 的平均灰度值 Mean-ADU 和标准差 SD-ADU (即以 ADU 为单位的噪声)。

以上公式①变为:

这样,我们就可以计算出:

以上计算中,图像的标准差即代表噪声的前提是,图像区域内没有任何样品结构造成的亮度变化,否则标准差还包含这个结构信息。为此,我们可以连续拍摄两张同样场景的图像,然后把两张图像相减。相减后的图像就只包含光子散粒噪声了。如果以 SD-subtract 代表差值图像的标准差SD-image1和SD-image2代表单张图像的标准差,则以下公式成立:

因为两张图像设置完全相同,SD-image1 = SD-image2,所以:

那么,以上公式最后变为:

这样算出的 Gain 单位为 e–/ADU。

02拍摄图像

太好了,公式终于结束了。现在就来拍摄图像,通过公式⑤,我们知道只需要拍摄3张图像,就可以计算出 Gain 了。

好的,两分钟计时开始哦~

01

拍摄一张短曝光时间的黑图像 (bias 图像) 以计算offset:我们知道,对同一台相机,偏置(offset)是一个常数。方法很简单,在相机完全无信号的情况下,(如显微镜设为全部光都到目镜,或者盖上镜头盖),将曝光时间设为0, 拍摄一帧图像。

02

拍摄两张平均亮度大概在相机动态范围中间区域的图像。如果您的相机是12bit的,有4096 灰度级,那么图像的平均亮度最好在 2000 左右。这个可以通过调整曝光时间,或照明光强度来实现。当然,其实要求并不那么严格,基本要求是图像上不能有接近饱和(>4000 ADU, 此时相机失去了线性度),或太暗( <200ADU, 此时相机没有工作在光子信号限制区, 我们计算的条件不满足)的区域。如果您的相机是 14bit 的,那么灰度级是16384, 上面的值需要按比例进行调整。

03计 算

1. 首先在 Image J 中打开 bias 图像,用 Analyze>measure, 得到图像的 mean 值即为 Offset。

2. 接下来,打开另外两张图片,选择 Analyze > Measure 得到两张图片的平均灰度值;然后再用 Analyze > Summarize 就可以得到平均值 Mean-Image1, Image2

3. 计算差异图像的标准差:选择 Analyze > Image Calculator,将两张图片进行 subtract,并勾选 32-bit (float) result,得到两张图片的差值图像。

选择 Analyze > Measure 即可看到差值图像的标准差 SD-substarct:

4. 然后代入前面的公式⑤,我们就可以算出系统增益啦!(表忘了减去偏置值哦~)

以上就是两分钟快速计算相机增益的方法啦!希望对大家有所帮助。另外我们总结了一些关于 Gain 的事实。

计时结束,完美!第一次可能慢一些,第二次做应该两分钟都不用吧!

  • CCD/CMOS 相机的 Gain 是出厂设置好的,不会改变;

  • EMCCD 的 EM Gain 会随着使用老化衰减,正常使用 7~10 年左右;我们推荐每隔一段时间校准一次;

  • 根据厂家不同,Gain 有多种表示方式:有些相机只有一个 Gain ,有些有三个 Gain ,有些连续可调(如 0.5x-20x), 或 ISO100 – ISO1200 等等。以上测试,只对应当时设定的那个 Gain 有效;如果实际使用时,因为样品或成像方式变化,需要改变 Gain 的设置,对每个 Gain 都需要测量。建议在保存图像时,在文件名上反映出 Gain 的设置;

  • 同一台相机,Gain 的倍数越大,相机的满阱容量越小(更早饱和);

  • 同一台相机,在软件中调节 Gain 的设置,图像亮度会变化,但实际探测到的电子数不变,因此信噪比变化不大;

  • Binning 不影响 Gain;

  • 行行好,把测算出的 Gain 值记在小纸片上贴起来供大家使用吧!

做成像的你不能不了解的真相7-两分钟测算相机增益(Gain)的更多相关文章

  1. 做成像的你不得不了解的真相2-灵敏度和QE

    科研级相机的灵敏度由三个主要参数决定: 探测器的QE, 像元尺寸和相机噪声. 后两项我们以后再做专题讨论.这期先讲讲小编认为顶顶重要,看起来最容易理解,但是其实还有些奥妙的QE. QE-量子效率 QE ...

  2. 【ABAP系列】SAP ABAP 模拟做成像windows一样的计算器

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP ABAP 模拟做成像wind ...

  3. Qt 学习之路 2(19):事件的接受与忽略(当重写事件回调函数时,时刻注意是否需要通过调用父类的同名函数来确保原有实现仍能进行!有好几个例子。为什么要这么做?而不是自己去手动调用这两个函数呢?因为我们无法确认父类中的这个处理函数有没有额外的操作)

    版本: 2012-09-29 2013-04-23 更新有关accept()和ignore()函数的相关内容. 2013-12-02 增加有关accept()和ignore()函数的示例. 上一章我们 ...

  4. 半天做完的数据报表,YonBuilder只要十几分钟,0代码开发

    进入数字化时代,拍脑袋的决策方式显然不靠谱,一切要靠数据说话.与信息化时代相比,数字化时代的企业对数据的应用更广泛.更深入.为了应对激烈的市场竞争,企业经营决策者们对数据的依赖度越来越高,企业各个业务 ...

  5. 做了一个js的拉动遮罩层,两个图片分别显示的效果

    想做成车修好了和没修好的对比,所以需要两个图片.需要用到的知识点, 1.定位 2.mouse 的事件(代码中体现) 3.鼠标指针的移动距离算法 4.css中,cursor的应用 好了,废话不多说 ,直 ...

  6. VWAP算法(成交量加权平均价)

    算法交易其实主要是用在基金公司.券商量化比较多.例如我已经选好股,要大量买入,但是单凭交易员的操作海量单而且要完成买入100万股这些的操作是有点的困难的.那么这时候怎样解决拆单,防止冲击成本的问题呢? ...

  7. time wait 整理

    目录 状态转换图 1.谁会进入time wait状态: 主动发起断开连接的一方调用close()函数发送FIN并进入FIN WAIT 1状态,当收到对面反馈的ack之后会进入FIN WAIT2状态.之 ...

  8. OpenGL中glRotatef()函数究竟对矩阵做了什么

    OpenGL中glRotatef()函数究竟对矩阵做了什么 我们知道OpenGL中维持着两套矩阵,一个是模型视图矩阵(model view matrix),另一个是投影矩阵(projection ma ...

  9. wpf做的3d滑动gallery

    原文:wpf做的3d滑动gallery wpf做的3d滑动gallery 随着iphone\ipad的流行及热捧,现在做移动产品不管是什么平台的,领导总想做成像ios系统的样子.自从微软发布了wind ...

随机推荐

  1. Python爬虫之解析网页

    常用的类库为lxml, BeautifulSoup, re(正则) 以获取豆瓣电影正在热映的电影名为例,url='https://movie.douban.com/cinema/nowplaying/ ...

  2. Bootstrap-按钮篇btn

    参考网址:http://v3.bootcss.com/(能抄不写) 1.按钮颜色样式: 对应代码:(主要体现在class内容:btn-default,btn-primary...) <butto ...

  3. C语言备忘录——向上取整

    众所周知,C语言的取整方式是向下取整,昨天老师留了一道思考题,问我们C语言怎么向上取整,当时我第一反应就是ceil(),老师说不能用if……else之类的,函数也不行.当时想了想没事不用就不用,去ma ...

  4. Java学生管理系统(IO版)

    图解: cade: student.java /* * 这是我的学生类 */ public class Student { //学号 private String id; //姓名 private S ...

  5. DevOps云翼日志服务实践

    10月30日,全球权威数据调研机构IDC正式发布<IDCMarketScape:中国DevOps云市场2019,厂商评估>报告.京东云凭借丰富的场景和实践能力,以及高质量的服务交付和平台稳 ...

  6. elasticsearch-填坑

    1.分页参数 ,start=(page-1)*size 2.高亮字段结果的处理方式 3.float类型参数从map中取出用double接收 4.结果封装需手动封装 package com.search ...

  7. [浅学]POST、GET、PUT、DELETE 请求

    HTTP定义了与服务器交互的不同的方法,最基本的是POST.GET.PUT.DELETE,与其比不可少的URL的全称是资源描述符,我们可以这样理解: url描述了一个网络上资源,而post.get.p ...

  8. i++ 和 ++i 的区别和实现

    ++i 和 i++ ++i 和 i++ 的区别 1)i++ 返回的是 i 的值,++i 返回的是 i+1 的值 2)i++ 不能用作左值,++i 可以用作左值 左值和右值的区别是什么? 根本区别是:能 ...

  9. PAT Advanced 1067 Sort with Swap(0,*) (25) [贪⼼算法]

    题目 Given any permutation of the numbers {0, 1, 2,-, N-1}, it is easy to sort them in increasing orde ...

  10. UML-如何画常用UML交互图?

    1.生命线框图(参与者) 2.消息表达式