最近梳理项目中用到的算法,准备将做过的东西做个简单的记录,也算对阶段性工作的一个总结。引导滤波、高斯滤波、双边滤波、非局部均值滤波、非锐化掩摸、图像动态范围压缩、对比度限制自适应直方图均衡、双线性平台直方图均衡等在红外图像处理中应用非常广泛。今天就非局部均值滤波做简单分析记录。后续将对引导滤波、双边滤波及双线性平台直方图等做分享记录。
原理性的知识网上很多好的博文写的非常详细。本文只从fpga的实现角度进行简单分享。在实现过程中,要实现搜索窗和滑动窗,这里设计到FPGA逻辑资源的问题。本人实现过程中采用了5x7的搜索窗,滑动窗为3x3。在进行滑动窗与滑动窗滑动到搜索窗相应的窗时,欧氏距离的计算需要取折中的方法,如果3x3窗内9个点算最好,如果取几个点算也可以实现相同的效果。
搜索窗和滑动窗如下图所示:
窗的构造如下图:
滤波前图像如下:
滤波后图像如下:
如上图,滤波前后图像效果对比非常明显。但有个问题必须是面对的,滤波器阈值设置要合理,过大或者过小都会影响红外图像的细节层。
如下图所示:
从左到右,滤波器阈值为100、200、300时红外图像的细节对比。下次分析下双边滤波和双线性平台直方图的FPGA实现及其原理,经过双线性平台直方图后的图像立体感确实比只做对比度亮度调节的图像立体感强很多。