一种图像去噪算法的实现

最近几天APEC放假,正好看了一片有关image processing的文章。文章的主要内容是给出了一种去噪声的方法,没有用到现在很火的所谓大数据的东西。基本方法可以说是用到了稀疏表示和部分的字典学习的思想。

名字叫 An Analysis and implementation of the BM3D Image Denoising Method, 发表在了2012年的期刊 Image Processing On Line(IPOL)上。文章的第二个优点是给出了开源的代码,在IPOL的官网上,还有本文的一个demo。

本文的算法主要分为两步,两个步骤的算法内容基本一样,但是对最后输出的贡献不同。大体的思想是,第一步主要是对图像做一个基本的预测,第二步在第一步的基础之上对加入图像的细节,对图像进行滤波和去噪,减少块效应和振铃效应。同时,两个步骤中所用到的数学工具也不同,变换有DCT变换和正交B样条小波变换(文中用bior表示)。此外,第二步中使用的去噪算法还用到了维纳过滤,而第一步的滤波器仅使用了一个阈值作为截断。


可以看到两个步骤的基本思路相同,但是各个子模块的选择不同,首先是group过程,这个过程是将相似的图像块聚类的过程,两步是用输入进行一个由二维到三维的影射。然后将三维的图像进行YUV或者OPP的变换,再通过滤波器,最后将滤波器的输出做反变换。不同的是,在两个步骤中的变换核的选择以及滤波器的选择不同。


在论文的网站上可以下到他们开放的源码。是在Linux下运行的,需要安装两个库,一个是用于图像读取的库libpng,直接在命令行里

sudo apt-get install libpng-dev

即可

另一个是用于计算离散傅里叶变换的fftw库。在使用的时候需要注意的是,fftw库在安装的时候是默认安装的整数变换,装好了之后在/usr/local/lib里是fftw3.a文件,但是在代码中要使用的默认浮点运算的离散傅里叶变换。在装好了之后是fftw3f.a文件。http://www.fftw.org/下载。安装分三步

1.解压tar zxvf fftw3.3.4.tar.gz       

2.cd到解压文件夹中 ./configure --enable-float 其余默认即可

3.make 然后make install

在运行时请根据readme.txt文件选择参数和输入图像。正在调整参数测试中,剩下以后再补吧


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值