图像解析力算法—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、对每行的矩心使用最小二乘法进行线性拟合,获得一条关于矩心的直线
这个没啥好说的,其实就是根据你计算出来的那么多个矩心的点,然后获取分界边缘的直线表达式。
我们知道用的是最小二乘法就可以了。最小二乘法公式如下:
最后获得的其实就是上面的图中那条红色的线,略微有差距,可是基本上可以说是完全一致的了。
这篇就先讲到整理到这里吧。后面的五个步骤会持续更新。
欢迎关注我的个人公众号,这里有更多好康的喔~
posted on 2022-08-13 16:15 DylanYeung 阅读(746) 评论(0) 编辑 收藏 举报