这个是《【图像处理】SFR算法详解1》的后续,本篇主要讲解SFR算法过程。这里主要参考ISO 12233标准所描述的SFR算法过程,详见《ISO 12233-2000 Camera resolution measurement》中6.3 Saptial frequency response。
1、水平SFR及垂直SFR
SFR是通过分析相机拍摄到的图像中一个黑色到白色的斜边而得到的,即下图中所示的红框部分。其中,区域1的垂直斜边用于计算水平SFR,而区域2的水平斜边用于计算垂直SFR。
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/07b070eb07edc0d72b10ac05b70bf5b1.jpeg)
在后续的算法中,我们讨论的是怎么计算水平SFR,而垂直SFR可以通过旋转90°之后进行跟水平SFR同样的算法获得。
2、算法流程
下图为具体算法流程,该流程与标准中的有所差异,结合了标准中所建议的流程及实际代码实现的流程,原因是标准中的流程图与标准中附录A的程序代码、附录C的算法原理存在差异。
以下为简要过程:(图中对应的RGB,GRAY等表示传输进入当前模块的数据类型。)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/a72de17922dd7a3b3e4bc2a92c755e8b.jpeg)
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。
3、代码获取
本系列文章都是主要分析Mitre SFR 1.4源码,具体可以下载查看。
下载地址:Mitre SFR 1.4