不模糊滤波器matlab,使用 Wiener 滤波器对图像进行去模糊

读取原始图像

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

Ioriginal = imread('cameraman.tif');

imshow(Ioriginal)

title('Original Image')

98f381f18ed12192defe26a151bd2c56.png

模拟和还原无噪声运动模糊

模拟照相机移动可能导致的模糊图像。首先,创建点扩散函数 PSF,方法是使用 fspecial 函数并指定以 11 度角跨 21 个像素的线性运动。然后,使用 imfilter 将点扩散函数与图像进行卷积。

原始图像的数据类型为 uint8。如果您将 uint8 图像传递给 imfilter,则该函数将量化输出以返回另一个 uint8 图像。要减少量化误差,请在调用 imfilter 之前将图像转换为 double。

PSF = fspecial('motion',21,11);

Idouble = im2double(Ioriginal);

blurred = imfilter(Idouble,PSF,'conv','circular');

imshow(blurred)

title('Blurred Image')

3c10738f716b0c2eaf12fd48f4130518.png

使用 deconvwnr 函数还原模糊图像。模糊图像没有噪声,因此您可以省略噪信比 (NSR) 输入参数。

wnr1 = deconvwnr(blurred,PSF);

imshow(wnr1)

title('Restored Blurred Image')

6971a7418d9c74bd20441cb933a83fad.png

模拟和还原运动模糊和高斯噪声

使用 imnoise 函数将零均值高斯噪声添加到模糊图像中。

noise_mean = 0;

noise_var = 0.0001;

blurred_noisy = imnoise(blurred,'gaussian',noise_mean,noise_var);

imshow(blurred_noisy)

title('Blurred and Noisy Image')

3560ee666a0d06bf58553cb5744c7485.png

尝试使用 deconvwnr 还原模糊的含噪图像,但不提供噪声估计值。默认情况下,Wiener 还原滤波器假设 NSR 等于 0。在这种情况下,Wiener 还原滤波器等效于理想的逆滤波器,它对输入图像中的噪声非常敏感。

在此示例中,该还原过程将噪声放大到了使图像内容丢失的程度。

wnr2 = deconvwnr(blurred_noisy,PSF);

imshow(wnr2)

title('Restoration of Blurred Noisy Image (NSR = 0)')

9dc54665cf82ce16e1c84ca8cbe4410b.png

尝试使用 deconvwnr 和更实际的估计噪声值来还原模糊的含噪图像。

signal_var = var(Idouble(:));

NSR = noise_var / signal_var;

wnr3 = deconvwnr(blurred_noisy,PSF,NSR);

imshow(wnr3)

title('Restoration of Blurred Noisy Image (Estimated NSR)')

a07db6836190bdd7dc9088b784f10a71.png

模拟和还原运动模糊和 8 位量化噪声

即使视觉上察觉不到的噪声也会影响结果。噪声的一个来源是在处理以 uint8 表示的图像中产生的量化误差。以前,为了避免量化误差,此示例基于数据类型为 double 的原始图像模拟模糊图像。现在,为了探究量化误差对还原的影响,基于原始 uint8 数据类型的原始图像模拟模糊图像。

blurred_quantized = imfilter(Ioriginal,PSF,'conv','circular');

imshow(blurred_quantized)

title('Blurred Quantized Image')

ddf131a079c37851a00a104b48fcea2d.png

尝试使用 deconvwnr 还原模糊量化图像,但不提供噪声估计值。尽管没有添加额外的噪声,但与数据类型为 double 的模糊图像的还原相比,此还原降低了质量。

wnr4 = deconvwnr(blurred_quantized,PSF);

imshow(wnr4)

title('Restoration of Blurred Quantized Image (NSR = 0)');

c123cfe19427efe93829b9181d87f67b.png

尝试使用 deconvwnr 和更实际的估计噪声值来还原模糊量化图像。

uniform_quantization_var = (1/256)^2 / 12;

signal_var = var(Idouble(:));

NSR = uniform_quantization_var / signal_var;

wnr5 = deconvwnr(blurred_quantized,PSF,NSR);

imshow(wnr5)

title('Restoration of Blurred Quantized Image (Estimated NSR)');

fab7df00f69e8de0a34fd6768d87a085.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值