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

news2024/11/27 17:50:43

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.coloradmin.cn/o/1008720.html

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

相关文章

学生护眼灯用白炽灯还是led?专业的学生护眼灯推荐

现在的护眼灯逐渐成为了孩子们学习路上必不可少的一盏灯具,它比普通的台灯光线更加均匀舒适,而且更加护眼。因此也成为了家长们呵护孩子视力健康的一大“帮手”,不过护眼台灯的种类也有很多,最近就有家长问孩子使用的护眼灯是白炽…

用GPT干的18件事,能够真正提高学习生产力,建议收藏

用GPT干的18件事,能够真正提高学习生产力,建议收藏。 语法更正 文本翻译 语言转换 代码解释 修复代码错误 作为百科全书 信息提取 好友聊天 创意生成器 采访问题 论文大纲 故事创作 问题类比 创建 SQL 需求 情感分析 将产品描述转变为广告 关键字提取 闲…

Tailwind CSS 初学者指南

Tailwind CSS是一个实用程序优先的CSS框架,允许您快速构建现代网站,而无需离开HTML。它是 Web 开发社区中最流行和使用最广泛的 CSS 框架之一,每月下载量超过 250 万次1。在本文中,我们将探讨 Tailwind CSS 2023 的路线图&#xf…

go string类型简叙

字符串赋值后就不能修改 var str string "abcd" str[0] f //这里就有能修改str内容字符串的两种表示形式 双引号,会识别转义字符反引号,以字符串的原生形式输出,包括换行和特殊字符,可以实现防止攻击、输出输出源代…

el-table表格中加入输入框

<template><div class"box"><div class"btn"><el-button type"primary">发送评委</el-button><el-button type"primary" click"flag true" v-if"!flag">编辑</el-button…

Android EditText筛选+选择功能开发

在日常开发中经常会遇到这种需求&#xff0c;EditText既需要可以筛选&#xff0c;又可以点击选择。这里筛选功能用的是AutoCompleteTextView&#xff0c;选择功能使用的是第三方库https://github.com/kongzue/DialogX。 Android AutoCompleteTextView(自动完成文本框)的基本使用…

Mozilla 紧急修补 Firefox 和 Thunderbird 中的 WebP 严重零日漏洞

Mozilla 周二发布了安全更新&#xff0c;修复了 Firefox 和 Thunderbird 中的一个关键零日漏洞。 该漏洞被标记为 CVE-2023-4863&#xff0c;是 WebP 图像格式中的堆缓冲区溢出漏洞&#xff0c;在处理特制图像时可能导致任意代码执行。 Mozilla 在一份公告中说&#xff0c;打…

MyBatisPlus(二)基础Mapperr接口:增删改查

MyBatisPlus&#xff1a;基础Mapper接口&#xff1a;增删改查 插入一条数据 代码 Testpublic void insert() {User user new User();user.setId(6L);user.setName("张三");user.setAge(25);user.setEmail("zhangsanexample.com");userMapper.insert(use…

系统安全漏洞检测技术第三方检测机构

安全测试报告 建立一个安全的Web系统一直是很多企业的目标&#xff0c;一个比较实用的方法就是建立比较容易实现的相对安全的系统&#xff0c;同时按照一定的安全策略建立相应的安全辅助系统&#xff0c;系统安全漏洞检测就是这样一类安全辅助系统。 系统安全漏洞检测技术 1、…

Kali Linux基础篇(一) 信息收集

一、前言 1、信息收集分主动信息收集和被动信息收集 主动方式&#xff1a;攻击者直接访问网站&#xff0c;对网站做出扫描、探测等行为&#xff0c;目标系统可能会记录操作信息被动方式&#xff1a;利用第三方的服务访问目标&#xff0c;被动信息收集不会留下访问痕迹&#x…

华三路由交换技术基础——计算机网络基础

计算机网络&#xff1a; 定义&#xff1a;一组具有自治权的计算机互联的集合 作用&#xff1a; 1.共享信息资源 2.分解式处理信息 4.负载均衡 5.综合信息服务 它是计算机技术与通信技术的两个领域的结合 一&#xff0c;计算机网络中的基本概念&#xff1a; 局域网&#xff…

js中如何判断一个变量是否为数字类型?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐使用Number.isNaN()方法⭐使用正则表达式⭐使用isNaN()函数⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个…

线性代数的本质(二)——线性变换与矩阵

文章目录 线性变换与矩阵线性变换与二阶方阵常见的线性变换复合变换与矩阵乘法矩阵的定义列空间与基矩阵的秩逆变换与逆矩阵 线性变换与矩阵 线性变换与二阶方阵 本节从二维平面出发学习线性代数。通常选用平面坐标系 O x y Oxy Oxy &#xff0c;基向量为 i , j \mathbf i,…

【Linux网络编程】Socket-UDP实例

这份代码利用下面所有知识编写了一个简易聊天室&#xff08;基于Linux操作系统&#xff09;。虽然字数挺多其实并不复杂&#xff0c;这里如果能够看完或许会对你的知识进行一下串联&#xff0c;这篇文章比较杂并且网络编程这块知识需要用到系统编程的知识&#xff0c;希望能帮助…

内网隧道代理技术(二十四)之 ICMP隧道介绍

ICMP隧道介绍 ICMP介绍 ICMP(InternetControl MessageProtocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但…

《PostgreSQL与NoSQL:合作与竞争的关系》

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f405;&#x1f43e;猫头虎建议程序员必备技术栈一览表&#x1f4d6;&#xff1a; &#x1f6e0;️ 全栈技术 Full Stack: &#x1f4da…

OpenCV(三十五):凸包检测

1.凸包检测介绍 凸包检测是计算凸包的一种技术&#xff0c;凸包就是&#xff1a;给定二维平面上的点集&#xff0c;将最外层的点连接起来构成的凸边形&#xff0c;它是包含点集中所有的点。 2.凸包检测函数convexHull() void cv::convexHull ( InputArray points, OutputArra…

华为云云耀云服务器L实例评测|初始化centos镜像到安装nginx部署前端vue、react项目

文章目录 ⭐前言⭐购买服务器&#x1f496; 选择centos镜像 ⭐在控制台初始化centos镜像&#x1f496;配置登录密码 ⭐在webstorm ssh连接 服务器⭐安装nginx&#x1f496; wget 下载nginx&#x1f496; 解压运行 ⭐添加安全组⭐nginx 配置⭐部署vue&#x1f496; 使用默认的ng…

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

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

【Stable Diffusion】安装 Comfyui 之 window版

序言 由于stable diffusion web ui无法做到对流程进行控制&#xff0c;只是点击个生成按钮后&#xff0c;一切都交给AI来处理。但是用于生产生活是需要精细化对各个流程都要进行控制的。 故也就有个今天的猪脚&#xff1a;Comfyui 步骤 下载comfyui项目配置大模型和vae下载…