关于 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.hqwc.cn/news/108334.html

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

相关文章

Java8实战-总结27

Java8实战-总结27 用流收集数据分区分区的优势将数字按质数和非质数分区 用流收集数据 分区 分区是分组的特殊情况:由一个谓词(返回一个布尔值的函数)作为分类函数,它称分区函数。分区函数返回一个布尔值,这意味着得到的分组Map的键类型是B…

Springboot 集成 Ehcache操作数据库显示SQL语句设置

Springboot 集成 Ehcache操作数据库显示SQL语句设置 2023-09-13 23:33:35.030 INFO 6124 --- [ task-1] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2023-09-13 23:33:35.124 INFO 6124 --- [ …

linux安装nacos2.2.0

1、使用docker拉取镜像:docker pull nacos/nacos-server:v2.2.0 2、下载官方配置文件:https://github.com/alibaba/nacos/releases 3、修改配置文件的数据库连接信息,修改完成后将配置文件移至挂载目录/home/shixp/docker/nacos/conf&#xf…

PHP8中删除数组中的重复元素-PHP8知识详解

在 php 8 中,你可以使用array_unique()函数来删除数组中的重复元素。该函数将返回一个新的数组,其中包含原始数组中的唯一元素,而重复的元素只保留第一个出现的。 array_unique()函数返回具有唯一性元素的数组,语法格式如下&#…

Microsoft Excel 101 简介

什么是 Microsoft Excel? Microsoft Excel 是一个电子表格程序,用于记录和分析数值数据。 将电子表格想像成构成表格的列和行的集合。 字母通常分配给列,数字通常分配给行。 列和行相交的点称为像元。 单元格的地址由代表列的字母和代表行的…

Rsync远程同步inotify监控

Rsync 简介 rsync(Remote Sync,远程同步) 是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限 在远程同步任务中,负责发起rsync同步操作的客户机…

《向量数据库指南》——“插件版”向量数据库与Milvus Cloud原生向量数据库之间的区别?

我一直坚持一个观点,即并非所有基于向量的解决方案都应被统称为向量数据库,尽管它们的能力在某些方面可以与之匹敌。从我的观点来看,例如 pgvector 或 Elasticsearch,它们都是非常出色且成熟的产品,在特定场景下&#…

计算机网络的故事——确认访问用户身份的认证

确认访问用户身份的认证 HTTP使用的认证方式:BASIC认证(基本认证)、DIGEST(摘要认证)、SSL客户端认证、FormBase认证(基于表单认证)。 基于表单的认证:涉及到session管理以及cookie…

Redis——Java中的客户端和API

Java客户端 在大多数的业务实现中,我们还是使用编码去操作Redis,对于命令的学习只是知道这些数据库可以做什么操作,以及在后面学习到了Java的API之后知道什么方法对应什么命令即可。 官方推荐的Java的客户端网页链接如下: 爪哇…

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…

uniapp 触底加载

方式一 onReachBottomDistance 缺点&#xff1a;需要整个页面滑动&#xff0c;局部滑动触发不了 { // pages.json // 路由下增加 onReachBottomDistance "path": "detailed/detailed","style": {"navigationBarTitleText": "收…

【实战详解】如何快速搭建接口自动化测试框架?Python + Requests

摘要&#xff1a; 本文主要介绍如何使用Python语言和Requests库进行接口自动化测试&#xff0c;并提供详细的代码示例和操作步骤。希望能对读者有所启发和帮助。 前言 随着移动互联网的快速发展&#xff0c;越来越多的应用程序采用Web API&#xff08;也称为RESTful API&…