SFR算法原理分析

news/2024/9/20 18:38:23/文章来源:https://www.cnblogs.com/cupwym/p/18370935

成像系统的解析力:

摄像头最关键的指标之一。所有用户拿到一张照片的时候首选看到的是照片清楚不清楚,这里的清楚指的就是解析力。但是如果评价一个成像系统的解析力也是大家一直在探讨的问题。目前主流的办法主要有三种TV line检测、MTF检测以及FR检测。

MTF:

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

SFR:

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

Cy/mm&LP/mm:

cy/mm和lp/mm都是进行分辨率衡量的单位,具体含义:线对每毫米(lp/mm)、周期每毫米(cy/mm);此外,

常用到的分辨率单位还有线对每毫弧度(lp/mr)以及周期每毫弧度(cy/mr)。

在上图中,上半部分的是原图像,下半部分表示相机拍摄得到的图像。可以看出线对的边缘经过镜头之后明显变得模糊,并且线对越密越模糊,相应的MTF也就越低。cy/mm表示的就是在图像的一个毫米内有多少线对。此外,线对和像素间距之间还可以进行转换。

转换计算过程:

假设现在 分辨率为100cy/mm, 这意味着每毫米包含100个黑白相间的线对。一个线对包含一条黑线和一条白线。因此,如果一个毫米有100个线对,则每毫米有200条线(100条黑线和100条白线) 则,每条线的厚度为1000μm/200 = 5μm

对于单色图片,我们可以认为5um是像素对角线长度,假设每条线的厚度5 μm相当于像素对角线的长度。为了获得像素间距(即像素的边长),我们需要将对角线长度除以√2。。为了获得像素间距,我们除以根号2,55um /√2≈3.54um。

彩色图像的典型值:

对于彩色图像,每个颜色通道(例如红、绿、蓝)的分辨率往往是单色图像的一半。因此,通常的做法是将单色图像像素间距除以2。

对于颜色应用,典型值是该值的一半,即5um / 2 = 2.5um。

SFR的具体步骤就是上面的九大步骤,箭头中对应的是每一步执行前后对应的输入和输出。

总结如下:

0、获取垂直斜边的ROI

1、进行数据的归一化

2、计算图像每一行的像素矩心

3、对每行的矩心使用最小二乘法进行线性拟合,获得一条关于矩心的直线

4、重新定位ROI,获得ESF

5、对获得的ESF进行四倍超采样

6、通过差分运算获得LSF

7、对LSF应用汉明窗

8、进行DFT运算

步骤解析:

  1. 获取垂直边缘的ROI:

上图是专业的图像MTF测试图,用红色方框框起来的是测试卡用于计算SFR的部分,蓝色小方框框起来的是我们应该获取的具体RIO区域(具体就是黑白图像,中间有分界线,我们称之为边缘(Edge))

具体ROI图像如图:

以及

这里水平和垂直的Edge只是为了计算图像在水平方向和垂直方向的解析力,与算法本身无关,因为水平的Edge会被进行90°旋转后作为输入,然后计算SFR的值。

1、进行数据的归一化

在Sensor获得图像之后,呈现出来的图像由于要符合人眼的感觉,会对图像像素进行伽马变换,使得其变成非线性的像素数据,从而使图像的显示更加符合人眼的感受。所以,当我们要进行sensor的成像解析力分析时,要先将图像处理成没有经过伽马变换前的。

一般sensor会对raw图像进行一个2.2的gamma变换,若我们想恢复原始图像时,我们只需要进行一个1/2.2的gamma变换即可。

2、计算图像每一行的像素矩心

这一步的操作其实是为了计算出边缘的位置。具体讲来就是,我们会将图片中的每一行像素都计算具体的矩心位置。

可以看到,其实每一行像素的矩心计算出来的结果,其实就是在黑白分界线的附近。

矩心对应位置:

shift[i]就是对应的第i行的矩心位置。

3、对每行的矩心使用最小二乘法进行线性拟合,获得一条关于矩心的直线

就是根据你计算出来的那么多个矩心的点,然后获取分界边缘的直线表达式。

我们知道用的是最小二乘法就可以了。最小二乘法公式如下:

最后获得的其实就是上面的图中那条红色的线,略微有差距,可是基本上可以说是完全一致的了

4、重新定位ROI,获得边缘扩展函数(Edge Spread Function, ESF)

这一步其实比较复杂,我也不确定在我的讲述之下,大家是否能够听懂,我尝试用简单的方式讲解一下。

首先,转换坐标轴,将坐标轴转换到计算出来的矩心直线上。如图所示:

5、对获得的边缘扩展函数(Edge Spread Function, ESF)进行四倍超采样

然后,我们将每一行中X轴坐标相等的像素值累加起来,然后求均值后得到下面第一行的数组。

这里是将整张图片的像素转换为一个长度为rows的数组,然后进行4倍的扩增。然后其他没有像素的地方,是进行一个向前寻找非0的像素值进行替换,这样就获得了ESF。

6、通过差分运算获得LSF

这不用多说,就是得到的ESF数组元素进行差分,获得LSF。一下是函数公式:

7、对线扩展函数(Line Spread Function, LSF)应用汉明窗

对上面的LSF数组进行汉明窗处理,这一步主要也是看公式,如下:

8、进行DFT运算

最后的到的SFR数组就是空间频域响应的值。

SFR是一种用于评估图像系统(例如相机或扫描仪)分辨率和锐度的方法。它通过测量系统对不同空间频率(图像中的细节程度)的响应来评估图像质量。具体来说,SFR算法通常包括以下步骤:

图像采集:使用被测系统拍摄特定的测试图案,通常是斜边(edge)或正弦波(sine wave)图案。

边缘检测:在测试图案中找到斜边并提取出感兴趣的区域。

边缘剖面分析:沿着斜边的法线方向提取灰度值,得到边缘剖面(edge profile)。

边缘扩展函数(Edge Spread Function, ESF):通过边缘剖面计算得到边缘扩展函数。

线扩展函数(Line Spread Function, LSF):对ESF进行微分得到线扩展函数。

调制传递函数(Modulation Transfer Function, MTF):对LSF进行傅里叶变换得到MTF,它表示系统对不同空间频率的响应。

SFR计算:SFR是MTF的一部分,用于描述系统在不同空间频率下的响应强度。

通过以上步骤,SFR算法能够提供关于图像系统性能的详细信息,帮助工程师和研究人员改进图像系统的设计和优化。

在自动对焦(AF)场景中,SFR算法可以作为评价自动对焦性能的一种重要指标,尤其是在评估对比度自动对焦算法时。

对比度自动对焦算法通常通过分析图像的对比度来确定焦点位置。而SFR算法可以提供更精细的信息,例如评估系统对不同空间频率的分辨率能力和锐度。因此,它在以下几个方面可以为对比度自动对焦算法提供支持和补充:

精度评估:SFR算法能够量化图像系统对各种细节层次的响应,这对评估自动对焦的精度尤为重要。通过比较不同焦点位置下的SFR结果,可以确定哪一个位置产生了最佳的分辨率和清晰度。

鲁棒性分析:自动对焦算法需要在各种场景和条件下保持鲁棒性。SFR算法可以帮助分析在不同光照、对比度和场景复杂度下自动对焦的表现。比如,在低对比度或复杂背景下,SFR分析可以显示出哪些自动对焦算法能够正确地锁定焦点。

优化参数:基于SFR分析的结果,可以优化自动对焦算法的参数。

验证与标定:在图像系统设计阶段,SFR算法可以用来验证自动对焦算法的实际表现是否符合设计要求,也可以用来标定不同系统之间的自动对焦性能差异。

因此,虽然SFR算法本身并不是对比度自动对焦算法的替代品,但它可以作为一个有力的评价工具,帮助理解和优化自动对焦算法的性能,特别是在需要更细致的图像质量分析时。

SFR算法(Spatial Frequency Response)和对焦评价函数在图像处理和图像质量评估中有着不同的应用和目的:

SFR算法

定义和目的:

SFR算法用于评估图像系统的空间频率响应。它通过测量系统对不同空间频率的成像能力来分析系统的分辨率、对比度和图像锐度等特性。

SFR曲线通常展示系统在不同空间频率下的模传递函数(MTF),可以直观地反映系统对细节的保留能力和边缘清晰度。

应用场景:

主要用于图像系统的设计、制造和性能评估阶段。

适用于相机镜头、图像传感器和整个图像处理链路的优化和测试。

计算方法:

SFR算法通常涉及从测试图像中提取特定频率的信息,并通过比较输入和输出信号的能量来计算系统的频率响应。

对焦评价函数

定义和目的:

对焦评价函数是用来评估图像的焦点位置的指标。它衡量图像中目标区域的清晰度或对比度,并根据这些指标来判断图像是否正确对焦。

常见的对焦评价函数包括基于图像梯度、频域特征或深度信息的计算方法。

应用场景:

主要用于自动对焦系统、图像处理软件和计算机视觉应用中,以确保图像在不同条件下(如光线变化、场景变化)都能获得清晰的图像。

计算方法:

对焦评价函数的具体方法因应用而异,但通常涉及从图像中提取特定特征,如梯度变化或频率响应,然后将这些特征与预期的清晰度标准进行比较。

区别总结

目的不同:SFR算法旨在评估图像系统的空间频率响应和分辨能力;对焦评价函数旨在衡量图像中焦点的清晰度或对比度。

应用场景不同:SFR算法主要用于硬件设计和性能评估;对焦评价函数主要用于自动对焦系统和图像质量控制。

计算方法不同:SFR算法通常基于空间频率分析;对焦评价函数可以基于图像梯度、频域特征或其他局部信息。

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

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

相关文章

Semantic Kernel/C#:接入智谱AI的两种方式

本文介绍了Semantic Kernel/C#:接入智谱AI的两种方式。Semantie Kernel中对话请求默认是发送到OpenAI去的:其他与OpenAI对话请求接口兼任的模型平台,一般只需要修改host即可,如下所示:default:uriBuilder = new UriBuilder(request.RequestUri){// 这里是你要修改的 URLSc…

挑选最佳待办事项工具:专家指南

国内外主流的10款好用的待办事项软件对比:1.PingCode;2Worktile;3.微软To Do;4.MeisterTask;5.Airtable;6.Wrike;7.Basecamp;8.ProofHub;;9.嘀嗒清单(TickTick);10.番茄ToDo。在管理日常任务时,挑选一款合适的待办事项软件可能是个挑战,尤其是市面上有如此多的选…

EBS: FRM-41041: 找不到表模块:无效的ID

EBS: FRM-41041: 找不到表模块:无效的ID EBS: FRM-41041: 找不到表模块:无效的ID。FRM-41041: Cannot find form module: invalid ID. Cause: An invalid ID was passedtoa Built-in subprogram. Action: Verify that a proper call to FIND_FORM will be performed.Level…

钓鱼WLK

首先我们需要将交互键打开并设置你想要的快捷键。设置完成后 输入/console SoftTargetInteractArc 2/console SoftTargetInteractRange 30这2宏的作用可以允许你在不面向目标的情况下进行交互以及将交互半径增加到30码!这时候我们就可以进行钓鱼,以往我们钓鱼的步骤是中鱼,鼠…

双非一本,从中厂进大厂,年薪 50w+

大家好,我是R哥。 今天分享一个激动人心的面试辅导案例,一个二线互联网中厂的兄弟,辅导冲进一线互联网大厂,年薪 50 万+,涨幅 50% 左右。 先介绍下这个兄弟(小超)的背景:小超兄弟,双非一本,工作 5 年+,坐标杭州,在一家互联网中厂上班,核心诉求是互联网中大厂,并且…

UMG富文本块

UMG富文本块 了解如何使用虚幻引擎中的UMG富文本块。 虚幻示意图形(UMG)中提供的文本块带来了各种各样的样式选项和自定义。但是,你可能需要更灵活的文本块选项,以支持标记样式更改、内联图像、超链接等功能。 UMG RichTextBlock 提供了一种更为灵活的文本块。它支持标记样…

表格控件:计算引擎、报表、集算表

近日,葡萄城正式发布了SpreadJS最新版本 V17.1,为前端表格控件市场带来了一系列令人瞩目的新特性和功能增强。本次更新旨在进一步提升用户在计算引擎、报表生成和分析等方面的体验,为各行业的开发者提供更强大的工具支持。 主要更新亮点 工作薄增强 居右对齐 将样式的 textD…

lsof命令

lsof用于列出有关各种进程打开的文件的信息 列出打开特定文件的进程 lsof /var/log/secure列出目录下打开的文件根据进程名列出打开的文件 lsof -c ssh -c init | head列出特定用户打开的文件 lsof -u zabbix根据进程列出所有打开的文件 lsof -p 1268 列出所有网络连接 lsof -…

Docker无法运行java虚拟机报错There is insufficient memory for the Java Runtime

镜像导入到docker后无法启动容器的问题,但是上传到别的服务器上面又可以正常启动容器,报错信息如下:# There is insufficient memory for the Java Runtime Environment to continue. # Cannot create GC thread. Out of system resources. # Can not save log file, dump t…

Easysearch x 《黑神话悟空》有奖征文获奖结果公示

随着《黑神话:悟空》游戏的正式发售,我们 INFINI Labs 组织的 Easysearch 有奖征文大赛也圆满落幕。本次征文活动自启动以来,收到了众多创作者的热情投稿。在此,我们衷心感谢每一位参与活动的作者,是你们的才华和热情让这次征文活动异彩纷呈。 经过专业评审团的认真评选,…

JetBrains Rider 2024.2 (macOS, Linux, Windows) - 快速且强大的跨平台 .NET IDE

JetBrains Rider 2024.2 (macOS, Linux, Windows) - 快速且强大的跨平台 .NET IDEJetBrains Rider 2024.2 (macOS, Linux, Windows) - 快速且强大的跨平台 .NET IDE JetBrains 跨平台开发者工具 请访问原文链接:https://sysin.org/blog/jetbrains-rider/,查看最新版。原创作品…

排序算法 常见排序算法特性比较

目录排序的概念内外部排序稳定与非稳定排序改进排序的指标图片 排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对…