传统上为了拍摄前景与后景均清晰的图像,相机光圈应当尽可能的小。但是受到衍射极限的影响,过小的光圈会造成图像发生畸变。然而通过将多张相同构图但不同焦距的图像合成,可克服上述困难。本方法包含硬件设备和算法设计,重点在算法设计上,包括高斯滤波、拉普拉斯算子、均值滤波以及探测点的极大值映射,最终实现图像的合成。除此而外,算法中还加入了多进程的思想,使得算法在获取同样锐度图像的条件下,程序运行时间极大缩短,这通过仿真实验得以论证。本论文提出的算法适用于多核CPU的处理,具备普适性。
在工业检测领域和摄影领域,当为了获得图像中所有细节部分均清晰的效果,传统方法是选用小光圈的相机来进行拍摄。然而当光圈过小时,光通过光圈时就会发生衍射效应。根据瑞利判据,光学系统存在衍射极限,即艾里斑的半径x [1]: 1.22xdλ= (1) 其中λ 为光的波长,d 为光圈的直径,f 为相机镜头的焦距。当艾里斑尺寸大于像素尺寸时,便会使得图像发生畸变。
为了克服上述困难,考虑采用数字图像处理的技术。通过将同一构图进行多焦距的采样,提取有效信息并将所有图像融合,可最终得到大景深的图像[2] [3]。正是因为焦点堆栈所具备的优势,因此其应用得到了拓展, 斯坦福大学的Marc Levoy 等人在显微摄影中成功利用该技术对昆虫的腿部进行成像[4], 突破了传统显微镜的空间分辨率和角分辨率的衍射极限;Samuel W. Hasinoff等人利用该技术提出了计算3D形状的新方法[5],解决了三维重构时对于如毛发等细微物体复杂三维排列的问题[6] [7] [8]。然而,现今的图像融合算法存在程序运行时间长的问题,这会导致工业检测时间过长,检测效率低的问题;或者是摄影过程中合成时间过长,无法及时地查看图像合成效果,导致图像拍摄过程中存在有部分漏拍的情况时,摄影师无法及时地对拍摄有很好的把控。现对焦点堆栈算法进行算法设计和多进程处理,能够有效的提升图像显示效果和程序运行时间,为工业检测和微距摄影的研究提供了有效的应用拓展。本文的主要思想在于对每一张图像均提取高频信息,通过在每一个像素点位置处选取高频信息的最大值进行图像融合,从而得到合成图像。
2. 项目需求 本项目主要是用来对不同焦距的图像进行快速合成,最终实现在一张图片中所有细节均呈现清晰的效果,即超景深合成图像。运用卷积方法如Sobel 算子、Prewitt 算子、Roberts 算子、Laplacian 算子以及Canny 算子进行梯度边缘检测,虽然图像检测的精度高,但是程序的运行时间长;而若对图像直接进行简单处理,类似于对图像进行算数平均或者是小波变换,虽然程序运行时间短,但是图像的合成效果不佳。因此本项目考虑在图像检测精度得到保证的情况下,尽可能地压缩程序运行时间。