图像解析力算法—SFR(Spatial Frequency Response)原理分析(一)
在图像解析力算法—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)原理分析(一)相关推荐
- 图像解析力算法—SFR(Spatial Frequency Response)
Mitre SFR 1.4和sfrmat3是基于ISO 12233标准,但在某些方面彼此不同:Mitre SFR 1.4旨在尽可能接近标准, 而sfrmat3包含一些改进,可以获得精确的结果 即使被 ...
- 图像解析力算法—SFR(Spatial Frequency Response)概念理解
最近这一个月在搞SFR算法--(空间频域响应),终于也算是搞出来了,网上关于SFR计算MTF的资料和博客也是比较少,现在就是总结一下,也算是方便后人,篇幅估计会比较长,会分篇慢慢写. 讲到SFR和MT ...
- KMP算法之NEXT数组代码原理分析 - 数据结构和算法38
KMP算法之NEXT数组代码原理分析 让编程改变世界 Change the world by program KMP算法之NEXT数组代码原理分析 NEXT数组:当模式匹配串T失配的时候,NEXT数组 ...
- 数据结构与算法之KMP算法中Next数组代码原理分析
2019独角兽企业重金招聘Python工程师标准>>> 一.KMP算法之Next数组代码原理分析 1.Next数组定义 当模式匹配串T失配的时候,Next数组对应的元素指 ...
- linux算法设计,红黑树的原理分析和算法设计
红黑树是60年代中期计算机科学界找寻一种算法复杂度稳定,容易实现的数据存储算法的产物.在优先级队列.字典等实用领域都有广泛地应用,更是70年代提出的关系数据库模型--B树的鼻祖.在Linux kern ...
- RSA算法详解及攻击原理分析-附攻击范例
文章目录 RSA算法 1.算法背景 1.1 公钥密码 1.2 公钥体制数学基础 1.3 公钥通信的流程 2.RSA算法数学基础 2.1 RSA相关的数论基础 2.2 欧拉定理及推广 3. RSA算法构 ...
- java解析bt协议详解_BT下载原理分析
BT全名为BitTorrent,是一个p2p软件,你在下载download的同时,也在为其他用户提供上传upload,因为大家是"互相帮助",所以不会随着用户数的增加而降低下载速度 ...
- Leakcanary原理解析以及换肤框架skin的原理分析
一.错误现场 java.lang.ClassCastException: androidx.appcompat.widget.TintContextWrapper cannot be cast to ...
- 【配准】空间变换网络Spatial Transformer Networks原理分析
说明:此文只分析STN层的原理. STN由三个部分组成: 1.定位网络 生成空间变换参数,如二维仿射变换参数:a11,a12,a21,a22,t1,t2. 可以是任意的回归网络,如卷积网络,全连接网络 ...
最新文章
- Android利用android:indeterminateDrawable来实现ProgressBar三种方式
- BZOJ 3524主席树裸题 (雾)
- Windows server用好windows server backup,发挥个人电脑该有的系统还原功能
- 阿里巴巴北京总部鸟瞰图曝光:今天又是想去阿里上班的一天!
- 拳王虚拟项目公社:小白如何从0到1搭建个人私域流量池?6招玩转流量裂变法
- java tomcat输出信息,java – 如何在Tomcat中记录stdout输出?
- java实现物体下落效果_手撸一个物体下落的控件,实现雪花飘落效果
- pcl_view简单使用
- Thrift 的原理和使用
- MATLAB机器学习决策树网格法优化参数学习笔记
- 搜狗收录提交方法搜狗收录方法
- BGA集成电路脚位识别
- 未明学院:保姆级四大par面面经和准备方法
- no openvas scap database found. (tried /var/lib/openvas/scap-data/scap.db)错误
- 顺序表的基本操作——初始化表
- SSM毕设项目计算机设计大赛优秀作品展示网站8c96d(java+VUE+Mybatis+Maven+Mysql)
- 【清华集训 2014】玛里苟斯(组合计数 + 线性基)
- 下载工具MLDonkey的优化设置
- 小书童——刷题大军(洛谷)
- linux基金会认证考试,Linux基金会宣布新的Linux认证计划-嵌入式系统-与非网