关于 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…

jsoup框架技术文档--java爬虫--基本概念

阿丹: 之前使用python写的爬虫,但是现在项目的技术选型是需要使用jsoup来爬取网页的数据。那就需要重新学习一个框架。首先了解一下整体框架的基本概念。 jsoup的概念 JSoup是一个开源的Java库,它用于处理HTML文档,类似于一个用于…

QT tcpserver

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);// 服务端有QTcpServer库,封装了监听操作server new QTcpServer();// 直接监听,内部根…

Object的常用方法

目录 1.getClass():获得运行时类型 2.hashCode():获取哈希值 3.equals():比较方法 4.clone():实现对象的浅拷贝方法 5.toString():输出为String 6.notify():唤醒线程 7.notifyAll():…

MVSNet CVPR-2018 学习总结笔记 译文 深度学习三维重建

文章目录 2 MVSNet CVPR-20182.0 主要特点2.1 过程2.2 MVSNet主要贡献2.3 论文简介2.3.1 深度特征提取2.3.2 构造匹配代价2.3.3 代价累计2.3.4 深度估计2.3.5 深度图优化2.4 MVSNet(pytorch版本)2 MVSNet CVPR-2018 MVSNet (pytorch版) 代码注释版 下载 (注释非常详细,代码…

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…

Java基础11——抽象类和接口

Java基础11——抽象类和接口 抽象类和抽象方法 区分普通方法和抽象方法 在Java 中,当一个类被 abstract 关键字修饰的时候这个类称为抽象类。当一个类的方法被 abstract 关键字修饰的时候,该方法称为抽象 方法。抽象方法必须定义在抽象类中。当一个方…

leetcode 1921. 消灭怪物的最大数量(每日一题)

最近学习的状态找回很多。慢慢来吧,加油! 1921. 消灭怪物的最大数量 你正在玩一款电子游戏,在游戏中你需要保护城市免受怪物侵袭。给你一个 下标从 0 开始 且长度为 n 的整数数组 dist ,其中 dist[i] 是第 i 个怪物与城市的 初始…

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…

Ei Scopus检索 | 2024年第三届能源与环境工程国际会议(CFEEE 2024)

会议简介 Brief Introduction 2024年第三届能源与环境工程国际会议(CFEEE 2024) 会议时间:2024年9月1日-3日 召开地点:新西兰奥克兰 大会官网:https://www.cfeee.org/ 2024年第三届能源与环境工程国际会议(CFEEE 2024) 将于2024年12月12日至1…

Struts.xml 配置文件说明

<?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!--…

【Linux常用命令】

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

elasticsearch集群部署-实操

elasticsearch&#xff08;集群&#xff09; 案例版本&#xff1a;elasticsearch 8.6.2 操作系统&#xff1a;CentOS 7 注意&#xff1a;全程使用普通用户操作。 0、节点信息 节点描述192.168.127.10master192.168.127.11slave…slave02 1、环境配置 1.1 修改文件 /etc/se…

中国大学MOOC地下水污染与防治答案

本文转载自 众课帮 众工号 1、下列哪项不属于有机污染物综合指标&#xff08; &#xff09; A、高锰酸盐指数 B、化学需氧量&#xff08;COD&#xff09; C、浊度 D、总有机碳&#xff08;TOC&#xff09; 答案&#xff1a;浊度 2、饮用水水质指标常说的“两虫”是指( ) A、贾…

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

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

第24节——react hooks组件传值 - 父子组件之间的传值

一、概念 一句话概括&#xff0c;react hook 父子组件之间通过props进行传值 二、父传子 父组件&#xff1a;在子组件标签上定义属性 子组件&#xff1a;函数组件接收一个props是一个对象&#xff0c;父组件传的属性名就是props对象的key&#xff0c;属性的值就是对应的val…

python实现Flask GET Demo

python代码 from flask import Flask, request, jsonifyapp Flask(__name__)#用/data路径路由 app.route(/data) def get_data():## 以下一行是从URL中获取参数的get方法data request.args.get(data)return jsonify(data data,info "success !",code "200…