相机的信噪比

2023-10-31

 

在图像传感器的成像过程中,真实的信号是无法探测到的理想值。在成像过程中理想值被引入了一系列的不确定性,最终形成读出信号也即图像。此过程中的不确定性被统一称为噪声。而信号与噪声的比值被定义为信噪比(Signal-to-NoiseRatio, SNR)。其中信号可以由光强乘以量子效率乘以积分时间来计算。而噪声则指成像过程中所有部分所产生噪声的总和。

 

 

一台相机的性能的好坏,从两个方面影响相机,一个是影响接收到的/转化为的信号的强弱(影响分子);另一个就是相机本身所引入的噪声的强弱(影响分母)。

 

 

一、对信号的影响方面

 

这里引入相机量子效率的概念,定义为所激发出的电子数与入射的光子数的比值。

 

 

 

在传感器的感光单元上,入射的光子会转化为电子。我们使用量子效率QE来表示光子到电子的转化效率。量子效率使用百分比来表征,等于所激发出得电子数与入射的光子数的比值。越高的量子效率代表着越高的光子利用率,在其他条件相同的情况下便可以得到更高的信噪比,在弱光环境下便得到更显著的优质成像效果。

 

 

 

 

 

 

 

一般来说,QE是由相机的成像芯片所决定的,不同的相机厂商使用同一款芯片制造出来的相机QE都是相同的。另外,QE是波长敏感的,同一个芯片对不同波长的QE是不同的,根据波长绘制出QE的各个值的曲线叫做量子效率曲线,如下图。

 

二、对噪声的影响方面

 

除了量子效率之外,噪声也是影响信噪比的关键因素之一。

 

为了形象的理解,举个例子。假设待拍摄样品所需探测的信号强度为100个光子,背景信号的强度为99个光子。则可计算出下表中相机所产生的电子数。

 

可以看出,相机1虽然量子效率低一点,但是相机噪声小于信号与背景的差值,是有可能将信号从背景中识别出来的;而相机2虽然量子效率高,但是当背景和有用信号相差比较少时,相机的噪声大于信号与背景的差值,用该噪声水平的相机拍摄出来的信号就淹没在噪声中了而没有可能被识别出来。由此可见,噪声对于相机成像性能的重要性。

 

详细来说,在成像过程中,由相机所引入的噪声主要分为两个部分——暗噪声和读出噪声。

 

1. 暗噪声

 

暗噪声是指暗电流的不确定性所引入的噪声,该噪声可以通过对芯片进行制冷而降低。

 

2. 读出噪声

相机信号在读出过程中产生的噪声的统称。

 

 

三、相机的几个成像阶段

相机成像主要分为四个阶段,分别是光子转化为电子、电子转化为电压(模拟信号)、模拟转化为数字、数字图像的后处理。

 

 

第一步

 

光子转化为电子的转化率前面已经提过了,是量子效率,光子转化为的电子在转移之前储存在电势阱里,这个势阱的容量我们称为满阱容量,满阱容量除以读出噪声,就是相机的动态范围(详见)。

 

第二步

 

电子转换为电压的过程发生的位置,是两类成像芯片——CCD与CMOS——的主要区别。对于CCD芯片来说,所有像素的电子依次转移,最后统一转化为电压。虽然不同类型的CCD,转移方式是不同的,但是只要是CCD相机,这一步骤就是统一发生的,单个像素不会进行这一步骤。

 

 

而CMOS相机则是每个像素都单独的进行电子到电压的转换。这也是CMOS相机与CCD相机的主要区别。

 

第三步

第二步结束时得到的电压信号是模拟信号,使用模数转换器(ADC)将模拟信号转换为数字信号,就生成了数字图像。进行模数转换时使用的阶数,就是相机的位深(参考)。截止这一步结束,相机所得到图像的信噪比是“纯硬件”的真实信噪比。

 

第四步

得到原始图像之后,有些相机还会进行例如算法降噪、添加伪彩、背景扣除等后期处理,经过后处理的图像有可能信噪比要比原始图像提升很多,看起来更清晰。

 

 

但是同时也会由于计算而丢失很多信息,所以对于科研领域的使用者来说,关键的还是相机的原始图像信噪比。

 

相机的读出噪声便是在第二、三步的电路中所产生的,包括时钟噪声、复位噪声、白噪声、模式噪声、闪烁噪声等——统称为读出噪声。

 

 

四、信噪比公式

 

综上所述,信噪比公式为

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

相机的信噪比 的相关文章

  • 另一种排序方法 C#

    private void button27 Click object sender EventArgs e int array new int 10 3 2 4 90 50 20 34 22 49 int newArray new int
  • 125道Python面试题总结

    Pyhton面试宝典 提高编程能力的最有效办法就是 敲代码 1 一行代码实现1 100之和 res sum range 1 101 print res 5050 Python精华知识点手册 完整版 下载 2 如何在一个函数内部修改全局变量
  • Java嵌入式数据库H2学习总结(一)——H2数据库入门

    只为成功找方法 不为失败找借口 Java嵌入式数据库H2学习总结 一 H2数据库入门 一 H2数据库介绍 常用的开源数据库有 H2 Derby HSQLDB MySQL PostgreSQL 其中H2和HSQLDB类似 十分适合作为嵌入式数
  • ios(六)sqlite3以及FMDB

    SQLite 一种轻量的本地数据库 方便嵌入系统 支持跨平台 根据工作经验来看 无论是Android还是iOS大多都采用SQLite 首先我们需要新建一个数据库 我们给他起名personinfo sqlite 创建一张叫做person的表
  • HashMap 与HashTable的区别

    HashMap 与HashTable的区别 HashMap与Hashtable的区别是面试中经常遇到的一个问题 这个问题看似简单 但如果深究进去 也能了解到不少知识 本文对两者从来源 特性 算法等多个方面进行对比总结 力争多角度 全方位的展
  • python绘图坐标轴

    转载很好的学习资料 https zhuanlan zhihu com p 448571003
  • MySQL必知必会 学习笔记 第二十七章 全球化和本地化

    不同的语言和字符集需要以不同的方式存储和检索 MySQL需要适应不同的字符集 以及排序和检索这些数据的方法 术语 1 字符集 字母和符号的集合 2 编码 某个字符集成员的内部表示 3 校对 规定字符如何比较 查看MySQL支持的字符集列表
  • WebGL开源框架列举概述

    一 概述 WebGL是基于OpenGL的JavaScript API 库 允许Web浏览器在浏览器中渲染3D 2D图形 而无需安装额外的插件 桌面应用程序 任何第三方插件或浏览器扩展 WebGL允许通过浏览器使用机器GPU将3D图形渲染为H
  • 域更改目录服务器状态 不可用,active directory域服务当前不可用怎么解决

    基本上每个在win7系统用过打印机的用户都会遇到过 active directory域服务当前不可用 这个问题 那到底是什么导致现在的问题诞生呢 那要怎么设置才可以恢复active directory域服务呢 下面就跟着小编一起来看看吧 步
  • Flask 学习-73.Flask-SQLAlchemy 分页查询paginate

    前言 Flask SQLAlchemy 提供了一个分页查询方法 paginate 方便我们实现在后端查询分页 分页查询 在django 框架里面有个rest framework pagination 分页器 只需简单的配置就可以实现分页 f
  • 谈谈javaSE中的==和equals的联系与区别

    前言 和equals是我们面试中经常会碰到的问题 那么它们之间有什么联系和区别呢 今天我们就来聊聊吧 问题 这里先抛出一些比较典型笔试问题 int x 10 int y 10 String str1 new String abc Strin
  • angular 跨域的解决方案

    angular 跨域的解决方案 方法一 修改浏览器参数 方法二 angular的配置解决跨域 本地开发中使用 方法三 通过nginx来设置反向代理解决跨域 生产环境中使用 架设环境 实现的需求 及解决的办法 举例 方法一 修改浏览器参数 使
  • 在Windows下执行Linux命令的几种方式

    由于本人比较熟悉Linux下的命令和shell编程 就搜集了一些在Windows下执行命令的方式 1 Cygwin http www cygwin com cygwin可以简单的认为是在Windows上提供了一个Linux环境 是一个提供大
  • Simulink的U-Y模块(Selector)

    在看官方文档的时候 看到其中一个Simulink系统有一个U Y模块 用于选择输出位 但是在library里面没有找到 经过探索 发现这个模块是selector模块在设置完输出位后的样子 下面说说怎么用selector 选择器块把输入向量或
  • maven项目install时忽略执行test的几种方法

    1 在项目所在文件夹根目录使用maven命令打包时 mvn install Dmaven test skip true 或 mvn install DskipTests true 2 springboot项目中 在pom xml文件的中添加
  • 分享国产低成本低功耗蓝牙无线通信MCU芯片

    分享一款国产高性能 低成本 超低功耗的无线通信MCU芯片 内嵌32位ARM CortexM0 内核的宽电压工作范围的MCU 该芯片不仅集成一个可以工作到高达64MHz的32位的精简指令集的 RISC 的高效处理器 还集成一个功能丰富的蓝牙5
  • 游戏开发unity编辑器扩展知识系列:在Project视图下右键添加菜单子项

    说明 只需要将子项的路径放到 Assets 下即可 右键点击就可以看到了 MenuItem Assets MenuItemForRightMouseDown public static void Init
  • 2023饿了吗Java后端面经和网易Java面经【赶紧来试试!】

    2023饿了吗Java后端面经和网易Java面经 饿了吗Java后端面经 感觉有点难 网易日常Java面经 往期文章 gt gt gt Java最全面试题 五分钟看完 Java后端精选面试题分享 Java经典面试题 带答案 五 Java经典

随机推荐

  • Caffe源码中blob文件分析

    Caffe源码 caffe version commit 09868ac date 2015 08 15 中有一些重要的头文件 这里介绍下include caffe blob hpp文件的内容 1 Include文件 1
  • Qt学习 之 Socket通信(世界上最简单的例子了)

    最近写大作业用到Qt的Socket部分 网上关于这部分的资料都太过复杂 现在总结一下一些简单的应用 有机会可以给大家讲讲用Socket传送文件的代码 这里主要讲解如何实现TCP和UDP的简单通信 socket简介 在LINUX下进行网络编程
  • 3、约瑟夫问题的一种描述是:编号为1,2,……,n的n个人按顺时针方向坐一圈,每人持有一个密码(正整数)。一开始任选一个作为报数上限值m,从第一个开始顺时针自1开始顺序报数,报到m是停止报数。报m的人

    题目 3 约瑟夫问题的一种描述是 编号为1 2 n的n个人按顺时针方向坐一圈 每人持有一个密码 正整数 一开始任选一个作为报数上限值m 从第一个开始顺时针自1开始顺序报数 报到m是停止报数 报m的人出列 将他的密码作为新的m值 从他在顺时针
  • Selenium简单登录测试

    起先使用最新版火狐selenium被禁用 后改用54版 使用selenium测试我要自学网登录过程 登录之前显示如下 登录后显示如下 先打开我要自学网和selenium 将我要自学网的网址复制到selenium的Base URL 按下录制按
  • AOP源码解析(2)AnnotationAwareAspectAutoProxyCreator---Spring源码从入门到精通(十九)

    上篇文章主要讲了AOP的 EnableAspectAutoProxy注解 里面导入的类和执行的后置处理器 AOP源码解析 1 Spring源码从入门到精通 十八 阅读本篇文章 一定要先阅读上篇文章 运行的源码是基于上篇文章的代码 才方便理解
  • DERT:End-to-End Object Detection with Transformers

    文章目录 摘要 1 简介 2 相关工作 2 1 集合预测 2 2 Transformer与并行解码 2 3 目标检测 3 DETR模型 3 1 目标检测集合预测损失 3 2 DETR架构 4 实验 4 1 与Faster R CNN的对比
  • 【UE 粒子练习】06——创建条带类型粒子

    效果 下图呈现的是一种条带粒子跟随普通粒子移动的效果 其中 条带粒子为下图中蓝色部分 橙色部分为普通粒子 步骤 1 新建一个材质 命名为 Mat Ribbon 将用于条带粒子材质 材质域设置为表面 混合模式设置为半透明 着色模型设置为无光照
  • Java、python及phpstudy的环境配置

    由于重装了系统 电脑上啥都没了 正好借此机会写一些从空白开始配置新电脑 希望多踩一点坑 才能帮更多的人解决问题 本文是小白向的 学习过程中看到一些教程缺胳膊少腿 可能会漏掉一些博主觉得easy但是是我不确定的点的地方 所以本篇可能有点啰嗦
  • 期望、方差、协方差与相关系数

    1 利用切比雪夫不等式可以证明方差为0意味着随机变量的取值集中在一点上 2 从协方差可以得到两个变量增减的趋势 称为相关性 3 不相关 比 独立 更弱的概念 独立 必导致 不相关 不相关 不一定导致 独立 4 相关系数是相应标准化变量的协方
  • 使用Termux在安卓手机上运行tomcat服务器

    使用Termux在安卓手机上安装运行tomcat服务器 简单背景 探索尝试 尝试一 使用limbo虚拟机 失败 想念二 使用Linux Deploy安装 直接放弃 尝试三 使用Aid Learning 成功但搁置 尝试四 使用Termux直
  • Django之数据库并发处理

    1 数据库并发处理问题 在多个用户同时发起对同一个数据提交修改操作时 先查询 再修改 会出现资源竞争的问题 导致最终修改的数据结果出现异常 比如限量商品在热销时 当多个用户同时请求购买商品时 最终修改的数据就会出现异常 下面我们来写点代码还
  • getline()的使用详解

    一 getline int main string line while getline cin line cout lt
  • 图像去噪的OPenCV添加噪声和去噪

    添加噪声 添加高斯噪声 IplImage AddGuassianNoise IplImage src 添加高斯噪声 IplImage dst cvCreateImage cvGetSize src src gt depth src gt n
  • sass的日常使用

    sass跟css的简单对比 css 由于CSS的语法不够强大 没有变量和合理的样式复用机制 使得逻辑上相关的属性值必须以字面的形式反复出现 导致难以维护 而动态演示语言为CSS赋予了动态语言的特性 极大的提高了样式语言的可维护性 sass
  • github.com访问慢解决

    修改hosts HOSTS文件路径 C Windows System32 drivers etc hosts 1 打开Dns查询 站长工具 http tool chinaz com dns 2 搜索http github com 3 把TT
  • 使用Linux内核里的spi屏驱动-fbtft

    Linux内核里已经提供spi接口小屏的设备驱动 在内核的配置选项 make menuconfig ARCH arm CROSS COMPILE arm linux gnueabihf Device Drivers gt Graphics
  • 多线程练习之:生产电脑

    生产电脑 题目 设计一个生产电脑和搬运电脑类 要求生产出一台电脑就搬走一台电脑 如果没有新的电脑生产出来 则搬运工要等待新电脑产出 如果生产出的电脑没有搬走 则要等待电脑搬走之后再生产 并统计出生产的电脑数量 public class Co
  • python乘法出现小数位很多_js小数运算出现多位小数如何解决

    小数相乘出现很多位小数的问题 这个问题自己以前也遇到过 现在特意来总结一下 Number类型 Number类型是ECMAScript中最常用和最令人关注的类型了 这种类型使用IEEE754格式来表示整数和浮点数值 浮点数值在某些语言中也被成
  • 字节跳动前端面经

    面试经历 我入职字节大概一个多月 目前准大四 实习生 现在写面经不仅仅是牛客网 YYSD 真tm灵 的还愿 还是就是想给大家推荐推荐我们部门 技术中台 可能大家对技术中台不太了解 但是大家肯定听说过掘金吧 我们组主要负责ByteTech 字
  • 相机的信噪比

    在图像传感器的成像过程中 真实的信号是无法探测到的理想值 在成像过程中理想值被引入了一系列的不确定性 最终形成读出信号也即图像 此过程中的不确定性被统一称为噪声 而信号与噪声的比值被定义为信噪比 Signal to NoiseRatio S