关于 Resolution(分辨率、解析力)各单位的意义及相互之间的换算

1、问题背景

最近在调试的项目,有关于对解析力的要求,用 imatest 软件测试 MTF50 的值,如下图所示,可以看到他有不同的单位表示,LW/PH、Cycles/pixel 。另外关于解析力的单位还有LP/mm、L/mm、Cycles/mm、LP/PH,他们具体表示什么含义,又存在怎样的换算关系?

另外当已知 sensor 的规格该怎样选择分辨力合适的镜头?或者已知镜头的规格,该搭配什么分辨率规格的 sensor ? 这是本文要说清楚的主要内容。

2、问题分析

a、各个分辨率单位的具体含义是什么?

1)LP/mm,Line pairs per millimetre,每毫米线对。就是指拍摄标准的线对图,在成像平面1mm间距内能分辨开的黑白相间的线条对数,常用于表示镜头分辨率的单位。

比如10 lp/mm,意指1mm长度上有10对黑白一组的线,黑白线相加一共20根,那每根线的宽度就是1/20 = 0.05mm。30 pl/mm对应的每根线的宽度是 1/60 = 0.0167mm。

显然,分辨出0.0167mm宽度的线条肯定比0.05mm宽度的更困难。这意味着能分辨出单位长度下的线对数越多,镜头的分辨能力越强。

2)L/mm,Lines per millimetre,每毫米线数。也就是把上面的 LP(线对)换成了线条数来计算了,L/mm = 2 x LP/mm

3)LW/PH,Line width per picture height,像高每线宽。像高是指 sensor 物理尺寸的高,单位是mm。线宽是指拍摄标准的线对图,单位长度上的线对宽度。也就是,每像高最多可以分辨多少条线,常用于表示相机的摄影分辨率(是指镜头和相机的综合分辨率),

比如一个 sensor 是10 * 20mm的画幅, 如果纵向可以填进去1000根线, 横向可以填进去2000线,垂直分辨率就是:2000线,也就是 2000lw/ph, 水平分辨率就是1000线,也就是 1000lw/ph(由于 lw/ph 在不同方向上不能保证线条数目一样, 所以测试要分横向和纵向)。

4)Cycles/mm ,Cycles per millimetre,每毫米周期。这里的周期就是指拍摄的线对,也就是黑白条纹,他是按周期性变化的。一个黑白条纹就是一个周期,所以可以理解成,1mm内有多少对黑白条纹的变化,这里完全可以理解成 LP/mm 。

5)Cycles/pixel,Cycles per pixel,像素每周期。表示在每个像素内有多少个完整的周期或变化(这里的就是指黑白条纹的变化)。"cycles/pixel" 的值越高,表示图像中的细节变化速度越快,分辨率越高。相反,值越低,表示细节变化较慢,分辨率较低。

假设有一幅图像,其中有黑白相间的条纹,而且这些条纹是水平排列的。如果每两个像素之间有一个完整的黑白相间的条纹,那么我们可以说这个图像的空间频率是 0.5 cycles/pixel。这是因为在每两个像素之间,我们有一个完整的周期(一个黑条纹和一个白条纹)。

如果我们在同样的距离内有两个完整的周期,那么空间频率将是 1 cycle/pixel,因为每个像素内有1个周期。

6)LP/PH,Line pairs per picture height,像高每线对。只是把线条数换成了线对数来表示,也就是,每像高最多可以分辨多少线对, lp/ph = 0.5 * lw/ph。

b、各个分辨率单位之间是如何进行换算的。

如上是一个分辨率单位换算的表格,来源于大话成像论坛,如下是针对这个表格做的一些说明及验证,否则不是太好理解。

1)横向的第1排单位的值,是未知的。纵向第1列单位的值,是已知的,待计算的。

2)表格中 picture height,是指 sensor 物理尺寸的高,picture height = 像素尺寸 x 像素数量 。

3)表格中 #vert.pixel, 是指 sensor 垂直方向的像素数量,比如 1920x1080 的 sensor , 那这个值就是1080 。

4)表格中 pixel ptich,这里的像素间距就是像素尺寸。

5)单位换算举例:

以 sc233a 这款sensor 的规格为例:pixel size = 2.9um、picture height = 2.9um x 1080 = 3.132mm

如下图是用 imatest 分析出的结果,MTF50 = 0.6643cy/pxl = 1435LW/PH ,可以用上面的表格里的公式来验证一下结果。

lw/ph = cy/pxl x 2 x #vert.pixel = 0.6643 x 2 x 1080 = 1435lw/ph (0.6643像素每周期,周期可以理解成线对,乘以2就是像素每线数,再乘以总的像素数1080,那就是像高每线数了)。

lp/mm = lw/ph / picture height / 2 = 1435 / 3.132 / 2 = 229 lp/mm(像高每线数,除以一个像高后,就是毫米每线数,再除以2,就是毫米每线对数)。

cycles/pixel = lp/mm x pixel pitch = 229 x 0.0029 = 0.6641 cycles/pixel(毫米每线对,也就是毫米每周期,乘以单个像素尺寸后,就是像素尺寸每周期,可以理解成像素每周期)。

c、镜头与 sensor 像素的匹配

镜头分辨率与像素的转换:

像素数(P)= 感光元密度(2 x lp/mm)x 感光器高度(mm)  x  感光元密度(2 x lp/mm)x 感光器宽度(mm);

举例:

1)已知镜头的分辨率值为125lp/mm, sensor尺寸是 1/2"(6.4*4.8mm),需要配多少像素的感光器才能发挥镜头成像水平?   

---- 感光元密度为 250 pixel/mm, 像素数:P=(6.4x250) x (4.8x250)=1920000 pixel 

(感光元密度:根据纳奎斯特采样定理,一个感光元对应一条白线或黑线)。

2)已知200万像素摄像机(像素数为:1600x1200=1920000),sensor尺寸是 1/2"(6.4*4.8mm),求相配的镜头分辨率 ?

---- 水平像素密度:1600/6.4=250pixel/mm,垂直像素密度:250pixel/mm,镜头分辨率:125lp/mm( 若水平或垂直像素密度不等,应参考密度高的)。

3)已知sensor的像素尺寸为4um,那么所对应镜头分辨率是多少?

---- 所选镜头的极限分辨率(白线或黑线线宽)也应该是:4um,一对黑白线的宽度:2 x 0.004mm,镜头的分辨率就是1/(2x0.004)= 125lp/mm 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/78202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL安装validate_password_policy插件

功能介绍 validate_password_policy 是插件用于验证密码强度的策略。该参数可以设定三种级别:0代表低,1代表中,2代表高。 validate_password_policy 主要影响密码的强度检查级别: 0/LOW:只检查密码长度。 1/MEDIUM&am…

IO流(IO Stream)

​ 一、概述 我们已经系统学习了File 类,并且已经知道 File 类的实例用于表示文件或目录的路径 名。 虽然我们可以通过 File 实例来访问文件或目录的元数据,甚至可以创建、删除文件或目 录,但是,我们却不能通过File实例来访问文…

春秋云镜 CVE-2015-1427

春秋云镜 CVE-2015-1427 ElasticSearch RCE 靶标介绍 ElasticSearch RCE 启动场景 漏洞利用 因查询时至少要求es中有一条数据,所以发送如下数据包,增加一个数据: POST /website/blog/ HTTP/1.1 Host: eci-2zedttamjkr80i9iubel.cloudeci…

Linux安装MySQL8.0

又又又又..Linux装MySQL。 删除原有的MySQL 查看安装的mysql信息:rpm -qa|grep -i mysql 删除mysql相关服务:rpm -e --nodeps 查询mysql遗留文件和依赖信息:find / -name mysql 手动删除mysql配置文件:rm -rf /etc/my.cnf 相关…

MySQL锁

MySQL锁 事务事务的隔离级别脏读,不可重复读,幻读 表锁与行锁表锁测试准备测试 行锁测试 读锁与写锁读锁(共享锁)测试 写锁(排他锁)测试 元数据锁表级元数据锁表级MDL**(Metadata Lock&#xff…

十大排序算法及Java中的排序算法

文章目录 一、简介二、时间复杂度三、非线性时间比较类排序冒泡排序(Bubble Sort)排序过程代码实现步骤拆解演示复杂度 选择排序(Selection Sort)排序过程代码实现步骤拆解演示复杂度 插入排序(Insertion Sort&#xf…

【Linux常用命令】

一、防火墙相关 1、查看防火墙状态 systemctl status flrewalld2、如果防火墙是开启状态的,需要关闭 systemctl stop firewalld3、永久行关闭操作(禁止开机自启动) 因为防火默认是开启状态的,如果只是手动关闭,先次…

【Java】抽奖系统———保姆学习教程

目录 一、抽奖系统介绍 二、代码实现 1、随机生成中奖号码 1.1、中奖号码createNumber方法 1.2、控制判断contains方法 2、用户输入中奖号码 3、判断中奖情况 3.1、判断奖项isWin方法 三、完整代码 一、抽奖系统介绍 抽奖的号码由6个红色球号码和1个蓝色球号码组成。红色…

智慧园区:AI边缘计算技术与视频监控汇聚平台打造智慧园区解决方案

一、行业趋势与背景 智慧园区是现代城市发展的重要组成部分,通过智能化技术提高园区的运营效率、降低成本、增强环境可持续性等具有重要作用。在智慧园区中,人工智能和视频汇聚技术是重要的前置技术。人工智能技术可以实现对数据的智能化处理和分析&…

时序数据库 TimescaleDB 安装与使用

TimescaleDB 是一个时间序列数据库,建立在 PostgreSQL 之上。然而,不仅如此,它还是时间序列的关系数据库。使用 TimescaleDB 的开发人员将受益于专门构建的时间序列数据库以及经典的关系数据库 (PostgreSQL),所有这些都具有完整的…

2023/9/13 -- C++/QT

作业&#xff1a; 1> 将之前定义的栈类和队列类都实现成模板类 栈&#xff1a; #include <iostream> #define MAX 40 using namespace std;template <typename T> class Stack{ private:T *data;int top; public:Stack();~Stack();Stack(const Stack &ot…

TouchGFX之缓存位图

位图缓存是专用RAM缓冲区&#xff0c;应用可将位图保存&#xff08;或缓存&#xff09;在其中。 如果缓存了位图&#xff0c;在绘制位图时&#xff0c;TouchGFX将自动使用RAM缓存作为像素来源。位图缓存在许多情况下十分有用。 从RAM读取数据通常比从闪存读取要快&#xff08;特…

Linux下Minio分布式存储安装配置(图文详细)

文章目录 Linux下Minio分布式存储安装配置(图文详细)1 资源准备1.1 创建存储目录1.2 获取Minio Server资源1.3 获取Minio Client资源 2 Minio Server安装配置2.1 切换目录2.2 后台启动2.3 查看进程2.4 控制台测试 3 Minio Client安装配置3.1 切换目录3.2 移动mc脚本3.2 运行mc命…

Vue3后台管理系统Element-plus_侧边栏制作_无限递归

在home.view中添加代码 <template><div><div class"common-layout"><el-container><el-header class"common-header flex-float"><div class"flex"><img class"logo" src"../assets/logo…

【Redis】Redis实现分布式锁

【Redis】Redis常见面试题&#xff08;1&#xff09; 文章目录 【Redis】Redis常见面试题&#xff08;1&#xff09;1. 为什么要用分布式锁2. Redis如何实现分布式锁3. Redis接受多个请求模拟演示4. 使用Redis实现分布式锁会存在什么问题4.1 一个锁被长时间占用4.2 锁误删 【Re…

vue2+element-ui批量导入方法并判断上传的文件是否为xls或xlsx

业务需求: 代码结构: <el-dialogtitle"批量导入":close-on-click-modal"true"close"close()":visible"true"width"35%":center"true"><div class"el-dialog-div"><!-- 头部区域布局 -…

【基本数据结构 四】线性数据结构:队列

学习了栈后,再来看看第四种线性表结构,也就是队列,队列和栈一样也是一种受限的线性表结构,和栈后进先出的操作方式不同的是,队列是FIFO的结构,也就是先进先出的操作方式。 队列的定义 队列这个概念非常好理解。可以把它想象成排队买票,先来的先买,后来的人只能站末尾…

软考知识汇总--结构化开发方法

文章目录 1 结构化开发2 耦合3 内聚4 设计原则5 系统文档6 数据流图6.1 数据流图的基本图形元素 7 数据字典 1 结构化开发 结构化方法总的指导思想是自顶向下、逐层分解&#xff0c;它的基本原则是功能的分解与抽象。它是软件工程中最早出现的开发方法&#xff0c;特别适合于数…

「C++程序设计 (面向对象进阶)」学习笔记・二

0、引言 本专栏的系列文章是在学习 北京邮电大学 崔毅东 老师的《C程序设计 (面向对象进阶)》课程过程中整理的。欢迎前往专栏了解更多相关内容~ &#x1f600; 有关于现代 C 的基本介绍&#xff0c;请前往《现代C基本介绍》&#xff01; &#x1f514; 先决条件 本专栏的系列…

定时器+BOM

9.定时器BOM 1.定时器 **概念:**重复执行一个函数 1.1setInterval() setInterval(“代码/函数”,时间,参数),返回定时器的序列号,默认从1开始 clearInterval(序列号)清除定时 <button class"start">开启定时器</button><button class"close…