当前位置: 首页 > news >正文

图像质量评估-锐度

一、锐度介绍

锐度是衡量图像质量的最重要的因素之一,它反应了图像细节数量的多少。锐度是由不同色调或颜色区域之间的边界定义的。目前主流的办法主要有三种TV line检测,MTF检测,和SFR 检测。

TV line

TV line主要用于主观测试,也有一些读取TV line的软件如HYRes。但是总体来说没有一个具体的标准。大多数公司是以人的读取为标准。不同人的读取,以及状态的不同都会导致读取值的不稳定。而且如ISO12233 chart 实际上我们读出的线对数只能代表读出位置的状况。尤其中心的TV line跨度很大,很难反映一个成像系统。

MTF

MTF是Modulation Transfer Function的英文简称,中文为调制传递函数。是指调制度随空间频率变化的函数称为调制度传递函数。个传递函数最开始是为了说明镜头的能力。在各个摄像头镜头中经常采用MTF描述镜头的MTF曲线,表明镜头的能力。这些曲线是通过理想的测试环境下尽量减少其它系统对镜头的解析力的衰减的情况下测试得出的。但是其实MTF也可以涵盖对整个成像系统的解析力评价。

SFR

SFR是 spatial frequency response (SFR) 主要是用于测量随着空间频率的线条增加对单一影像的所造成影响。简言之SFR就是MTF的另外一种测试方法。这种测试方法在很大程度上精简了测试流程。SFR的最终计算是希望得到MTF曲线。SFR的计算方法和MTF虽然不同但是在结果上是基本一致的

下图的上半部分是原始图像,下半部分是经过镜头后的图像,即使最好的镜头也会导致图像一定程度的模糊,越差的镜头导致的模糊越严重。

wps852D.tmp

Bar pattern: Original (top); with lens degradation (bottom)

测量锐度的方法是使用边缘的上升距离,例如从像素亮度的10%到90%的距离(以像素、毫米或图像高度的分数为单位)。这称之为10-90%上升距离。但是从各个部件的边缘上升距离计算整个成像系统的边缘上升距离比较困难。为了解决这个问题,通常在频域空间进行测量。而空间频率的单位一般是线对每毫米(lp/mm),周期每毫米(cycles/pixel),线宽图像高度比(LW/PH)。其中cycles/pixel是用来测试数字感光芯片的单位。

在给定的空间频率上的相对对比度(输出对比度/输入对比度)称为调制传递函数(MTF)或空间频率响应(SFR)。下图是一个正弦模式的图像,上半部分是原图,下半部分是经过镜头衰减的图片,它在高频区域的对比度下降比较快。

wps852E.tmp

Bar pattern: Original (top); with lens degradation (bottom)

二、锐度测量

下边是正玄图形和条状图形分别经过镜头后的图像。

  • l红色曲线表示经过镜头后的条状图形的亮度,由波形可见,在高空间频率下,图像的对比度降低了;
  • l蓝色曲线代表着相应的MTF(SFR);

wps852F.tmp

MTF算法是分析镜头解像能力的算法,其全称是Modulation Transfer Function(调制传递函数)。为了理解这个,首先需要知道什么是调制Modulation。

Modulation类似于对比度的概念,其数学表达公式如下:

wps8530.tmp

它表示的是亮度最大值和亮度最小值的差值除以它们的和。如果在一张图像中,Imax = 255,Imin=10,那么M = 0.9245。而对比度则是亮度最大值除以亮度最小值,在这里等于25.5. 可以这样理解:Modulation是归一化之后的对比度。

然而,在相机拍照的过程中,实际景象的Mi与拍摄得到图像的Mo并不是一致的。对此,有这样的传递函数:
wps8531.tmp

使用MTF50或MTF50P评价图像的原因:

(1) 图像对比度是其低频或峰值的一半,因此细节仍然很明显。在MTF较低(10%或更低)的空间频率下,眼睛对细节相对不敏感。

(2) 在MTF50和MTF50P附近,大部分相机的响应迅速下降。

(3) MTF50P是强锐化相机的一个更好的度量标准,它在边缘附近有“光晕”,并且在MTF响应中有相应的峰值。
首先SFR不需要拍摄不同的空间频率下的线对。它只需要一个黑白的斜边(刀口)即可换算出约略相等于所有空间频率 下的MTF。如何通过一个斜边计算出大家可以去看下ISO12233-2000那篇文档,里面说的很详细。具体的流程如下图。

wps8532.tmpwps8533.tmp

具体步骤如下:

1)在相机获取到的RGB图像数据中选择对应垂直斜边ROI,并将其转化为Gray ROI;

2)对得到的Gray ROI数据进行线性化,得到linear ROI数据;

3)计算每一行的centroid,即图像重心,这样能够得到每一行数据的边缘位置。

4)获取到的centroid进行线性回归,得到对应的边缘数据,包括斜率、截距等。

5)获取得到重新定位ROI,根据图像数据及其到边缘的距离,获得ESF。

6)对ESF进行4倍超采样,根据每个数据与它同一行的边缘位置的距离,分别放入4个容器中,获得4xESF。

7)对4xESF进行差分运算,获得LSF。

8)对LSF应用汉明窗,减少图像边缘及噪声影响。

9)进行DFT运算,获得OTF。

10)从OTF的实部获得SFR。

注:具体的计算过程参考:

https://blog.csdn.net/jaych/article/details/51030939

https://blog.csdn.net/eric_e/article/details/88214291

三、测试结果说明

1、单位之间的转换:

wps8543.tmp

2、测试结果的解读

wps8544.tmp

转载于:https://www.cnblogs.com/qq377801394/p/11068066.html

相关文章:

  • NKOJ4241 蚯蚓 (【NOIP2016 DAY2】)
  • spring IOC bean中注入bean
  • 【OpenJ_Bailian - 4110】圣诞老人的礼物-Santa Clau’s Gifts (贪心)
  • centos7通过yum安装docker
  • 【Beta】Scrum meeting 2
  • 在Windows下搭建Gitlab服务器
  • mysql 是如何保证在高并发的情况下autoincrement关键字修饰的列不会出现重复
  • Docker是什么?可以用Docker做什么?
  • 《坐热板凳》第九次团队作业:Beta冲刺与验收准备(补交:实验十二 第八次团队作业:软件测试与ALPHA冲刺)...
  • 14-使用Vue来实现JQuery的动画效果
  • MP4V2 移植 (基于imx6 平台)
  • python学习之模块--模块(二)
  • Java数据结构和算法(七)--AVL树
  • linux 获取系统时间 strftime函数格式化时间为24/12小时制
  • 第7章 虚拟机类加载机制
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 30秒的PHP代码片段(1)数组 - Array
  • android图片蒙层
  • Angular6错误 Service: No provider for Renderer2
  • express.js的介绍及使用
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • Java Agent 学习笔记
  • 翻译--Thinking in React
  • 将 Measurements 和 Units 应用到物理学
  • 聚类分析——Kmeans
  • 前端学习笔记之观察者模式
  • 前端之React实战:创建跨平台的项目架构
  • 入口文件开始,分析Vue源码实现
  • 温故知新之javascript面向对象
  • 我从编程教室毕业
  • 说说我为什么看好Spring Cloud Alibaba
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • #控制台大学课堂点名问题_课堂随机点名
  • (3)nginx 配置(nginx.conf)
  • (solr系列:一)使用tomcat部署solr服务
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (附源码)ssm码农论坛 毕业设计 231126
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (十) 初识 Docker file
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)母版页和相对路径
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .java 9 找不到符号_java找不到符号
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET delegate 委托 、 Event 事件
  • .NET 中的轻量级线程安全
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .net通用权限框架B/S (三)--MODEL层(2)
  • .Net下的签名与混淆
  • /etc/fstab 只读无法修改的解决办法
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)