NLM去噪算法实现

来源:互联网 发布:java waitfor 返回值1 编辑:程序博客网 时间:2024/05/17 22:15

简介

  本篇主要是对NLM去噪算法的实现总结。参考论文:点击打开链接

基本原理

  该算法的基本原理是:假设同一副图像上,有着很多相似的纹理;因此在有噪声的区域,可以通过某种方式情况下,将相似的纹理区域来替换噪声区域。从而达到较好的去噪效果,并且不太多的损失细节。

具体实现

  1、该算法需要遍历整个原图像;首先取出一个原图像pixel,以该pixel坐标为中心,圈出一大、一小两个矩形。大的矩形表示纹理替换搜索区域R,小的矩形表示待处理pixel的纹理区域L。  R和L的size关系可以参考论文描述:                
  2、将R矩形区域,分成若干个和R矩形区域一样的大小的矩形L1。依次根据论文公式:           
            
计算出每块L1和L之间的权重W。
  3、将L的像素值都设置为0,然后根据L与每块L1的权重W,叠加当前L的像素值为:w * L1。
  4、将L和每块L1之间的权重W,同样累加起来到Wall。
  5、所有L1遍历完了之后,L=L / Wall。就得到了经过去噪处理之后的L区域像素。对应论文公式:            

结果显示

  对应的处理结果如下:
                                                                     原图像                                                                             去噪后图像      


                                                                         原图像
                                                          去噪后图像     


                                                         局部对比     

注:本文使用图片来源自己拍摄和该论文网站。

0 0
原创粉丝点击