学习中,如有错误,敬请指正,谢谢大家~

1、直接逆滤波:属于非盲复原,PSF已知,直接频域相除。

blurred=imfilter(img,PSF,'circular');noised=imnoise(blurred,'gaussian',mean,var);

Ifn=fft2(noised);deblurredn=ifft2(Ifn./Pf);

2、deconvblind:属于半盲复原,预测+求解PSF,内核:概率极大,最大似然算法。

[J,PSF] = deconvblind(I,INITPSF)

[J,PSF] = deconvblind(I,INITPSF,NUMIT,DAMPAR,WEIGHT,READOUT).

[J,PSF] = deconvblind(...,FUN)FUN(可选)是描述PSF附加约束的函数在每次迭代结束时被调用。FUN必须以PSF作为其第一个参数,并且可以接受附加参数P1,P2,...,PN。 

NUMIT(可选)是迭代次数(默认值为10)。

DAMPAR(可选)是阻尼,一个用于指定图像复原结果的阈值偏差的数组(根据泊松噪声计算的标准差)。 默认值为0(无阻尼)。【TODO:阻尼的概念还不是很理解】

WEIGHT(可选)分配给每个像素反映相机的拍摄质量的权重。将坏像素分配零权值从而排除该像素。 

READOUT(可选)是对应于附加噪声和读出相机噪声方差的阵列(或值)。

注意,输出图像J可能会出现由算法中使用的离散傅里叶变换引入的振铃。 在调用deconvblind之前,为了减少振铃使用I = EDGETAPER(I,PSF)。

 注:I 和 INITPSF可以是uint8,uint16,int16,double或single。

DAMPAR和READOUT必须与输入图像具有相同的等级。其他输入必须是double。

输出图像J(或输出单元的第一个阵列)与输入图像I具有相同的类别。输出PSF是double

3、deconvlucy:属于非盲复原,PSF已知,内核:最大似然+贝叶斯公式,也即Lucy-Richard算法

J = deconvlucy(I,psf)

J = deconvlucy(I,psf,iter,dampar,weight,readout)

使用泊松统计模型描述图像,最大似然复原过程中利用贝叶斯公式进行概率的迂回求解。最大似然:似然函数(图像函数)取对数求导解方程求极值。【TODO:最大似然+贝叶斯公式的数学理解】

4、deconvwnr:属于非盲复原,PSF已知,内核:差异最小 最小二乘,也即维纳滤波

J = deconvwnr(I,psf,nsr)

J = deconvwnr(I,psf,ncorr,icorr)

利用信号功率谱/噪声功率谱 因子消除逆滤波中的零分母问题。这里功率谱就是自相关函数,第一中是直接用信噪比NSR第二种是用噪声自相关和信号自相关。

比如:
Sn=abs(fft2(noise)).^2;%噪声功率谱NCORR=fftshift(real(ifft2(Sn)));%噪声自相关函数

5、deconvreg:属于非盲复原,PSF已知,内核:最小二乘+拉格朗日算子,也即约束最小二乘正则化方法

[J,lagra]= deconvreg(I,psf,np,lrange,regop)

最小二乘表示差异小,拉格朗日算子由拉普拉斯算子得到意义在于平滑。

6、deconvtv:属于非盲复原,PSF已知,内核:一阶二阶范数+差异最小,也即全变分方法

代码来源:【TODO:理解复现】

matlab对图像使用逆谐波均值滤波器去噪 matlab逆滤波复原_最小二乘

其中,

matlab对图像使用逆谐波均值滤波器去噪 matlab逆滤波复原_最大似然_02

matlab对图像使用逆谐波均值滤波器去噪 matlab逆滤波复原_最大似然_03

(Rudin,1992年,全变分定义)