学习中,如有错误,敬请指正,谢谢大家~
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:理解复现】
其中,
(Rudin,1992年,全变分定义)