首页 > 其他分享 >图像复原

图像复原

时间:2024-01-20 23:23:52浏览次数:29  
标签:PSNR image 滤波 图像复原 noise 图像 filtered

图像复原

实验目的

利用反向滤波和维纳滤波进行降质图像复原,比较不同参数选择对复原结果的影响。

实验内容

利用反向滤波方法进行图像复原;利用维纳滤波方法进行图像复原。

实验原理

1.逆滤波图像复原

逆滤波(反向滤波)图像复原是最简单的线性滤波复原方法。在已知降质系统的传递函数 和降至图像的傅里叶变换后,可以用下式求得复原图像的傅里叶变换估计。

复原图像的估计可通过傅里叶反变换求得:

在实际使用逆滤波进行图像复原时,要考虑零点的影响。如果在平面上有一些点或区域的,即出现了零点,就会导致不定解。

2.维拉滤波图像复原

维纳滤波图像复原的目的是寻找一个理想图像的估计值,使它们之间的均方误差最小。如果不知道噪声的统计性质,即和未知时,误差函数的最小值在频域中用下式计算:

式中K是噪声对信号的频谱密度之比,近似为一常数。

实验结果与分析

(1)输入图像采用实验1所获取的图像,对输入图像采用运动降质模型,如下式所示:

与降质图像相关的参数是:。

答:首先读入图像lena512color.png并将其转换为灰度图,然后根据运动降质模型的表达式构造,需注意当时,。将原始灰度图进行傅里叶变换和移位变换得到,与运动降质模型相乘,然后再进行移位反变换和傅里叶反变换即可得到运动降质后的图像。原图像和运动模糊后的图像分别如下图左右所示:

实验的源代码如下所示:

clear();

lena=imread("lena512color.png");

lena_gray = rgb2gray(lena);

figure;

subplot(1,2,1)

imshow(lena_gray)

title("原始输入");

T=1;

a=0.02;

b=0.02;

N=512;

H=T*ones(N,N);

for u=-N/2:N/2-1

for v=-N/2:N/2-1

if(a*u+b*v)~=0

H(u+N/2+1,v+N/2+1)=T/(pi*(a*u+b*v))*sin(pi*(a*u+b*v))*exp(-1j*pi*(a*u+b*v));

end

end

end

%% (1)

F = fftshift(fft2(double(lena_gray)));

G = F .* H;

blurred_image_no_noise=real(ifft2(ifftshift(G)));

subplot(1,2,2)

imshow(uint8(blurred_image_no_noise))

title("运动模糊图像");

(2)没有噪声的情况下,对降质后的图像进行反向滤波和维纳滤波操作,得到复原图像。

答:根据逆滤波图像复原公式和维纳滤波函数复原公式,将(1)中得到的分别使用两种复原公式得到,再将进行移位反变换和傅里叶反变换即可得到滤波后的图像。反向滤波和维纳滤波后得到的图像分别如下图左右所示:

实验的源代码如下所示:

%% (2)

figure

inverse_filtered_F=G ./ H;

inverse_filtered_image = real(ifft2(ifftshift(inverse_filtered_F)));

subplot(1,2,1)

imshow(uint8(inverse_filtered_image))

title("反向滤波复原");

K=0;

wiener_filter_F=conj(H)./(abs(H).^2+K).*G;

wiener_filtered_image=real(ifft2(ifftshift(wiener_filter_F)));

subplot(1,2,2)

imshow(uint8(wiener_filtered_image))

title("维纳滤波复原");

(3)对降质后的图像施加均值为 0,方差为 10 的高斯噪声,对降质后的图像进行反向滤波和维纳滤波操作,得到复原图像。

答:首先生成均值为0,方差为10的高斯噪声,然后将噪声先进行傅里叶变换再进行移位变换,加到(1)中得到的上。然后按照和(2)中同样的方法进行反向滤波和维纳滤波操作,得到复原图像。添加噪声后的降质图像、反向滤波操作后的图像、维纳滤波操作后的图像分别如下图左、中、右所示:

实验的源代码如下图所示:

%% (3)

figure;

noise = 10*randn(N,N);

Fnoise=fftshift(fft2(noise));

noisy_G=G+Fnoise;

blurred_image_with_noise=real(ifft2(ifftshift(noisy_G)));

subplot(1,3,1)

imshow(uint8(blurred_image_with_noise))

title("降质加噪");

PSNR_noise=psnr(uint8(blurred_image_with_noise),lena_gray);

inverse_filtered_noise_F=noisy_G ./ H;

inverse_filtered_noise_image = real(ifft2(ifftshift(inverse_filtered_noise_F)));

subplot(1,3,2)

imshow((inverse_filtered_noise_image),[])

title("反向滤波复原");

K=0.01;

wiener_filter_noise_F=conj(H)./(abs(H).^2+K).*noisy_G;

wiener_filtered_noise_image=real(ifft2(ifftshift(wiener_filter_noise_F)));

subplot(1,3,3)

imshow((wiener_filtered_noise_image),[])

title("维纳滤波复原");

(4)在加噪声的情况下,对每一种方法通过计算复原出来的图像的峰值信噪比,进行最优参数的选择,包括反向滤波方法中进行复原的区域半径(这里指恢复频谱边缘到图像中心的像素点距离,实验时统一用像素个数/图像宽高像素数)、维纳方法中的噪声对信号的频谱密度比值

标签:PSNR,image,滤波,图像复原,noise,图像,filtered
From: https://www.cnblogs.com/Silverplan/p/17977323

相关文章

  • [数字图像处理笔记] 第六章 图像复原
    1.图像复原及退化模型1.1图像复原图像复原:根据退化原因,建立相应的数学模型,从被污染或畸变的图像信号中提取所需要的信息,沿着使图像降质的逆过程恢复图像本来面貌。根据不同指标进行分类:在给定退化模型条件下:无约束和有约束根据是否需要外界干预:自动和交互根据处......
  • ICLR2023 | 用于图像复原的基础二值卷积单元
    前言 本文分享ICLR2023论文BasicBinaryConvolutionUnitForBinarizedImageRestorationNetwork ,介绍用于图像复原的基础二值卷积单元。本文转载自我爱计算机视觉仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、......
  • 图像处理技术:数字图像复原 ----- 图像退化/复原、图像噪声、图像空域/频域恢复技术
      图像增强与图像复原的异同点:相同点:改善给定图像质量。不同点:a.图像增强是一个主观的过程;而图像恢复的大部分过程是一个客观的过程。b.图像增强技术基本上是......
  • 图像处理学习笔记-05-图像复原与重建2
    估计退化函数图像观察估计首先观察图像的一个小矩形区域,之后处理子图像得到想要的结果,得到一个子图像的原图像估计之后通过下式:\[H_s(u,v)=\frac{G_s(u,v)}{\hat{F}_s......
  • 【图像去模糊】基于维纳滤波模糊图像复原算法的MATLAB仿真
    1.软件版本MATLAB2021a2.本算法理论知识   利用维纳滤波器进行图像去抖去模糊的基本原理如下所示:            对原始图像进行维纳滤波的算法是首先估计......
  • 图像复原
    1、图像复原:根据退化原因,建立相应的数学模型,从被污染或畸变的图像信号中提取所需要的信息,沿着使图像降质的逆过程恢复图像本来面貌。  1.1复原技术分类:(1)在给定......
  • 图像处理学习笔记-05-图像复原与重建1
    首先介绍图像退化、复原的一个线性模型,之后介绍噪声模型,接下来包含空间域滤波降噪和频率域降噪,介绍图像退化的线性和位置不变模型、估计退化函数的方法和基本的图像复原方......