主要内容

使用正则化过滤器去模糊图像

这个例子展示了如何使用正则化反褶积去模糊图像。当已知有限的附加噪声信息和约束条件(如平滑度)应用于恢复图像时,正则化反褶积可以有效地使用。利用正则化滤波器的约束最小二乘恢复算法对模糊噪声图像进行恢复。

模拟高斯模糊和高斯噪声

读取并显示没有模糊或噪声的原始图像。

我= im2double (imread (“tissue.png”));imshow (I)标题(的“原始图像”)文本(大小(我,2),大小(我,1)+ 15,...“图片由约翰霍普金斯大学的Alan Partin提供”...字形大小= 7,HorizontalAlignment =“正确”

图中包含一个axes对象。标题为Original Image的axis对象包含两个类型为Image、text的对象。

模拟一个模糊的图像,可能是由失焦镜头造成的。首先,创建一个点扩散函数,PSF,可使用fspecial函数,并指定大小为11 × 11、标准差为5的高斯滤波器。然后,将点扩散函数与图像进行卷积imfilter

PSF = fspecial (“高斯”11日,5);模糊= imfilter (PSF,我“conv”);

向模糊图像中添加零平均高斯噪声imnoise函数。

noise_mean = 0;noise_var = 0.02;blurred_noisy = imnoise(模糊,“高斯”、noise_mean noise_var);

显示模糊噪声图像。

imshow (blurred_noisy)标题(“模糊和嘈杂的图像”

图中包含一个axes对象。标题为Blurred and noise Image的axis对象包含一个类型为Image的对象。

使用估计噪声功率恢复图像

方法恢复模糊的图像deconvreg函数,提供噪声功率(NP)作为第三个输入参数。为了说明算法对噪声功率值的敏感性,这个示例执行三种恢复。

第一次恢复时,使用真NP。注意,示例在这里输出两个参数。第一个返回值,reg1,为恢复后的图像。第二个返回值,lagra,是正则反褶积收敛于其上的标量拉格朗日乘子。这个值将在后面的示例中使用。

NP = noise_var *元素个数(我);[reg1, lagra] = deconvreg (PSF, blurred_noisy NP);imshow (reg1)标题(“用真NP恢复”

图中包含一个axes对象。标题用True NP恢复的axes对象包含一个类型为image的对象。

对于第二次恢复,使用稍微高估的噪声功率。修复的分辨率很差。

NP_scale1 =1.1;reg2 = deconvreg (PSF, blurred_noisy NP * NP_scale1);imshow (reg2)标题(“用更大的NP恢复”

图中包含一个axes对象。标题用更大的NP恢复的axes对象包含一个类型为image的对象。

对于第三个恢复,使用稍微低估的噪声功率。噪声功率倍增器越小,图像边界的噪声放大和振铃越强。

NP_scale2 =0.9;reg3 = deconvreg (PSF, blurred_noisy NP * NP_scale2);imshow (reg3)标题(“用更小的NP恢复”

图中包含一个axes对象。标题用更小的NP恢复的axes对象包含一个类型为image的对象。

减少噪音放大和铃声

方法可以减少噪声放大和沿图像边界的振铃edgetaper反褶积之前的函数。图像恢复对噪声功率参数的敏感性降低。

锥形= edgetaper (blurred_noisy PSF);reg4 = deconvreg (PSF,锥形NP * NP_scale2);imshow (reg4)标题(“用更小的NP和边缘渐缩恢复”

图中包含一个axes对象。标题用更小的NP和边缘渐减恢复的axes对象包含一个类型为image的对象。

使用拉格朗日乘子

恢复模糊和噪声图像,假设最优解已经找到,相应的拉格朗日乘子已知。在这种情况下,传递给噪声功率NP的任何值都被忽略。

为了说明算法对拉格朗日乘子的敏感性,这个示例执行三种恢复。第一次恢复使用lagra的输出reg1恢复执行。

reg5 = deconvreg(锥形,PSF, [], lagra);imshow (reg5)标题(“与LAGRA恢复”

图中包含一个axes对象。用LAGRA还原标题的axes对象包含一个类型为image的对象。

第二次恢复使用的值大于lagra的输出reg1恢复。值越大,约束的重要性越高。默认情况下,这将导致图像的超平滑。

lagra_scale1 =One hundred.;reg6 = deconvreg(锥形,PSF, [], lagra * lagra_scale1);imshow (reg6)标题(“用大LAGRA修复”

图中包含一个axes对象。标题用Large LAGRA恢复的axes对象包含一个类型为image的对象。

第三个恢复使用比lagra的输出reg1恢复。较小的值削弱了约束(为图像设置的平滑度要求)。它放大了噪音。对于拉格朗日乘子等于0的极端情况,重构是纯逆滤波。

lagra_scale2 =0.01;reg7 = deconvreg(锥形,PSF, [], lagra * lagra_scale2);imshow (reg7)标题(“用小LAGRA修复”

图中包含一个axes对象。标题用Small LAGRA恢复的axes对象包含一个类型为image的对象。

使用不同的平滑约束

使用正则化算子的不同约束恢复模糊的噪声图像。使用3 × 3的高斯拉普拉斯(LoG)算子来约束图像的平滑度,而不是使用默认的拉普拉斯对图像平滑度的约束。

h = fspecial (“日志”3);reg8 = deconvreg (blurred_noisy PSF, [], lagra, h);imshow (reg8)标题(“受日志操作员限制”

图中包含一个axes对象。标题为Constrained by LoG Operator的axis对象包含一个类型为image的对象。

另请参阅

|||

相关的话题