在图像解析力算法—SFR(Spatial Frequency Response)概念理解一文中,我们已经讲解了在阅读SFR源码前必须了解的概念,下面我们来讲解一下,SFR算法的计算具体流程,然后结合源码进行分析, 获取计算公式。

先来看图,直观感受一下吧:

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

总结如下:

0、获取垂直斜边的ROI

1、进行数据的归一化

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

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

4、重新定位ROI,获得ESF

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

6、通过差分运算获得LSF

7、对LSF应用汉明窗

8、进行DFT运算

步骤解析:

0、获取垂直边缘的ROI:

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

具体ROI图像如图:

      以及     

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

1、进行数据的归一化

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

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

Gamma变换如图

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

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

这样讲可能比较抽象,我们直接来看图吧。

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

矩心的计算公式如下:

矩心对应位置:

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

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

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

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

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

这篇就先讲到整理到这里吧。后面的五个步骤会持续更新。

欢迎关注我的个人公众号,这里有更多好康的喔~

图像解析力算法—SFR(Spatial Frequency Response)原理分析(一)相关推荐

  1. 图像解析力算法—SFR(Spatial Frequency Response)

     Mitre SFR 1.4和sfrmat3是基于ISO 12233标准,但在某些方面彼此不同:Mitre SFR 1.4旨在尽可能接近标准, 而sfrmat3包含一些改进,可以获得精确的结果 即使被 ...

  2. 图像解析力算法—SFR(Spatial Frequency Response)概念理解

    最近这一个月在搞SFR算法--(空间频域响应),终于也算是搞出来了,网上关于SFR计算MTF的资料和博客也是比较少,现在就是总结一下,也算是方便后人,篇幅估计会比较长,会分篇慢慢写. 讲到SFR和MT ...

  3. KMP算法之NEXT数组代码原理分析 - 数据结构和算法38

    KMP算法之NEXT数组代码原理分析 让编程改变世界 Change the world by program KMP算法之NEXT数组代码原理分析 NEXT数组:当模式匹配串T失配的时候,NEXT数组 ...

  4. 数据结构与算法之KMP算法中Next数组代码原理分析

    2019独角兽企业重金招聘Python工程师标准>>> 一.KMP算法之Next数组代码原理分析       1.Next数组定义 当模式匹配串T失配的时候,Next数组对应的元素指 ...

  5. linux算法设计,红黑树的原理分析和算法设计

    红黑树是60年代中期计算机科学界找寻一种算法复杂度稳定,容易实现的数据存储算法的产物.在优先级队列.字典等实用领域都有广泛地应用,更是70年代提出的关系数据库模型--B树的鼻祖.在Linux kern ...

  6. RSA算法详解及攻击原理分析-附攻击范例

    文章目录 RSA算法 1.算法背景 1.1 公钥密码 1.2 公钥体制数学基础 1.3 公钥通信的流程 2.RSA算法数学基础 2.1 RSA相关的数论基础 2.2 欧拉定理及推广 3. RSA算法构 ...

  7. java解析bt协议详解_BT下载原理分析

    BT全名为BitTorrent,是一个p2p软件,你在下载download的同时,也在为其他用户提供上传upload,因为大家是"互相帮助",所以不会随着用户数的增加而降低下载速度 ...

  8. Leakcanary原理解析以及换肤框架skin的原理分析

    一.错误现场 java.lang.ClassCastException: androidx.appcompat.widget.TintContextWrapper cannot be cast to ...

  9. 【配准】空间变换网络Spatial Transformer Networks原理分析

    说明:此文只分析STN层的原理. STN由三个部分组成: 1.定位网络 生成空间变换参数,如二维仿射变换参数:a11,a12,a21,a22,t1,t2. 可以是任意的回归网络,如卷积网络,全连接网络 ...

最新文章

  1. Android利用android:indeterminateDrawable来实现ProgressBar三种方式
  2. BZOJ 3524主席树裸题 (雾)
  3. Windows server用好windows server backup,发挥个人电脑该有的系统还原功能
  4. 阿里巴巴北京总部鸟瞰图曝光:今天又是想去阿里上班的一天!
  5. 拳王虚拟项目公社:小白如何从0到1搭建个人私域流量池?6招玩转流量裂变法
  6. java tomcat输出信息,java – 如何在Tomcat中记录stdout输出?
  7. java实现物体下落效果_手撸一个物体下落的控件,实现雪花飘落效果
  8. pcl_view简单使用
  9. Thrift 的原理和使用
  10. MATLAB机器学习决策树网格法优化参数学习笔记
  11. 搜狗收录提交方法搜狗收录方法
  12. BGA集成电路脚位识别
  13. 未明学院:保姆级四大par面面经和准备方法
  14. no openvas scap database found. (tried /var/lib/openvas/scap-data/scap.db)错误
  15. 顺序表的基本操作——初始化表
  16. SSM毕设项目计算机设计大赛优秀作品展示网站8c96d(java+VUE+Mybatis+Maven+Mysql)
  17. 【清华集训 2014】玛里苟斯(组合计数 + 线性基)
  18. 下载工具MLDonkey的优化设置
  19. 小书童——刷题大军(洛谷)
  20. linux基金会认证考试,Linux基金会宣布新的Linux认证计划-嵌入式系统-与非网

热门文章

  1. c/c++多线程编程与无锁数据结构漫谈
  2. 10 种常见的BUG分类
  3. Codeup墓地-1133
  4. java中自定义日期类_java日期操作自定义类
  5. 触发器的创建与管理实验
  6. js 调用c语言函数看,JS函数调用的四种方法
  7. java swing做输入框,java Swing 文本框的使用
  8. Java Swing 是什么
  9. rasa x、botfront、articulate、RasaTalk框架部署
  10. 时间序列分类算法_时间序列分类算法简介