估计噪声的类型和参数。 比较各均值滤波和统计滤波,并分析其适用场景。 用例子说明局部滤波和自适用滤波的优缺点。 用维纳滤波和最佳陷波实现图像复原。

本文探讨了不同类型的噪声,包括高斯、瑞利、伽马、指数和均匀噪声,并通过实例展示了它们的生成过程。接着,分析了在椒盐噪声中几何均值滤波器优于算术均值滤波器,以及局部滤波和自适应滤波的优缺点。此外,还介绍了维纳滤波和最佳陷波滤波在图像复原中的应用,对比了维纳滤波与逆滤波的差异。
摘要由CSDN通过智能技术生成

作业五:图像复原与重建

实验要求:
估计噪声的类型和参数。
比较各均值滤波和统计滤波,并分析其适用场景。
用例子说明局部滤波和自适用滤波的优缺点。
用维纳滤波和最佳陷波实现图像复原。
实验结果与分析:(代码见附录)

(1)
对于这张计算机生成图可以看出它由3个像素值组成,所以直方图只有这三条数据

对于高斯噪声,方差b越大,噪声越多
n_gaussian = (a + b .* randn(M,N)),

瑞利噪声相比高斯噪声而言,其形状向右歪斜,这对于拟合某些歪斜直方图噪声很有用n_rayleigh = a + (-b .* log(1 - rand(M,N))).^0.5;

伽马噪声的实现,需要使用b个服从指数分布的噪声叠加而来。
for j=1:b
n_Erlang = n_Erlang + (-1/a)*log(1 - rand(M,N));
end

伽马噪声当b=1的时候,就可以得到指数噪声
n_Ex = (-1/a)*log(1 - rand(M,N));

均匀噪声可以由函数rand(M,N)直接产生
n_Uniform = a + (b-a)*rand(M,N);

椒盐噪声超过阈值的点设置为白点,
小于某阈值设置为黑点。
g_sp(find(x<=a)) = 0;
g_sp(find(x > a & x<(a+b))) = 1;

(2)

从图像可以看出对于高斯噪声这类随机噪声几何均值比算术均值好,不会那么模糊。
这是由于(a+b)/2>=(ab)1/2,修正的阿尔法均值滤波可去掉d / 2最低和d / 2最高强度值。剩余的mn-d个像素通过平均剩余的像素而形成。

本次小实验针对椒和盐噪声用均值滤波与统计滤波分别进行滤波并对比结果,首先对图像添加椒盐噪声,让其中255的为盐,0的为椒。对于盐噪声,谐波均值滤波与最小值滤波相比,最小值滤波较为平滑。对于椒噪声,逆谐波均值滤波(Q取正数)与最大值滤波相比,逆谐波均值滤波保留了更多的细节。
(3)

从三组图可以看出,对于椒盐噪声,自适应中值滤波器并不是对所有图片的效果都比中值滤波好。椒盐噪声中的椒其实就是像素值为0的黑点,盐就是像素值为255的白点,当图像中存在较少或不存在0和255这两种像素点时,对其添加椒盐噪声后再对其进行滤波,自适应中值滤波器的结果会好于中值滤波的结果。当图像中存在过多0和255这两种像素点时,对其添加椒盐噪声后再对其进行滤波,中值滤波器的结果会好于自适应中值滤波的结果。其原因就在于当图像存在0或255的大片区域时,一直不满足A1>0,A2<0这两个条件,其实最后保留下来的Zmed就是噪声点。

从实验可以看出加上局部自适应后比只有算数均值质量要好特别多,原因在于如果〖σ_η〗_2=0(无噪声),滤波器返回g(x,y)的值。因为在g(x,y)下零噪声的情况等同于f(x,y)。如果局部方差σ_L2与σ_η2高相关(带边界),滤波器返回一个g(x,y)的近似值。如果σ_η2=σ_L^2(不带边界),滤波器返回区域S_xy上像素的算术均值。这样局部噪声用求m_L来降低。

(4)

最佳陷波:从中心在原点的傅里叶图可以看出中间这四个点是噪声,将其进行中心变换后,四个噪声的跑到了四个角上,其他亮的部分为图片的细节,所以把细节去掉剩下的就是噪声,然后通过反傅里叶变化得出噪声图,最后通过噪声图减去一定权值的噪声就实现了复原操作。

维纳滤波与逆滤波的不同之处就在于K=sn(u,v)/sf(u,v)的取值,当k=0的时候,维纳滤波就等于逆滤波,当K不等于0的时候说明有噪声存在需要用维纳滤波复原。因为维纳滤波中存在白噪,所以图片较暗。

3.附录
close all;
clear ;
clc;
f = imread(‘E:\数字图像处理\第五次作业\Fig0507(a)(ckt-board-orig).tif’);

f = mat2gray(f,[0 255]);%归一化
[M,N] = size(f);
figure();
subplot(1,2,1);imshow(f);title(‘原图’);
subplot(1,2,2);imhist(f);title(‘直方图’);

%% ---------------高斯噪声-------------------
a = 0;
b = 0.08;
n_gaussian = (a + b .* randn(M,N));
f= f + n_gaussian;
figure();
subplot(1,2,1);imshow(f);title(‘高斯噪声’);
subplot(1,2,2);imhist(f);title(‘直方图’);
% %% ---------------瑞利-------------------
a = -0.2;
b = 0.03;
n_rayleigh = a + (-b .* log(1 - rand(M,N))).^0.5;
f = f + n_rayleigh;
figure();
subplot(1,2,1);imshow(f);title(‘瑞利噪声’);
subplot(1,2,2);imhist(f);ti

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值