数字图像处理-图像复原
发布时间
阅读量:
阅读量
目的: 学习图像复原技术的原理和编程实现。
要求: 能够编程实现对图像进行空间域滤波复原处理。
内容
①基础部分:编程实现窗口大小分别为3×3和5×5的中值滤波器,并对一幅图像添加上不同程度的椒盐噪声后进行滤波,对实验结果进行分析讨论。
②拔高部分:要求滤波器窗口的大小可以改变,编写一个中值滤波器函数TestMedFilter(I, [n, n ])实现上述功能。
(注意:禁止使用medfilt2函数,可以使用padarray函数)。
- 算法或流程图
- 自定义一个中值滤波器函数TestMedFilter,并为其定义两个自变量m,n 其中m为。添加椒盐噪声的指数,n为中值滤波器的阶数。
1. 导入原始图片,并将其打印出来。
2. 为原始图片添加椒盐噪声,并将其打印出来。
3. 转变添加椒盐噪声后的图像的数据类型为double。
4. 利用滤波器的阶数计算图片中值滤波开始与结束的行列数,并读取图像大小。
5. 利用双重for循环开始滤波窗口的选取。
6. 将滤波窗口中的多个数值。放置于二维数组中,将二维数组转化为一维数组,利用函数median 求出数组中间值。
7. 将数组中间值,赋给所对应窗口中间位置。
8. 8.转换数据类型为uint8,并打印处理后的头像。
9. 在命令行窗口输入:TestMedFilter(0.05,3);
10.
1. function[A,G]=TestMedFilter(m,n);
2. clc;
3. A=imread('cameraman.tif');
4. figure,imshow(A);
5. B=imnoise(A,'salt & pepper',m);
6. figure,imshow(B);
7. I=double(B);
8. a=(n-1)/2;
9. [M,N]=size(A);
10. for i=(1+a):(M-a)
11. for j=(1+a):(N-a)
12. C=I((i-a):(i+a),(j-a):(j+a));
13. D=C(:);
14. E=median(D);
15. F(i,j)=E;
16. end
17. end
18. G=uint8(F);
19. figure,imshow(G);

图1:处理之前的标准图像

图2:加入椒盐噪声之后的图形

图3:中值滤波后的图像
通过本次实验,编程实现窗口大小分别为3×3和5×5的中值滤波器,并对一幅图像添加上不同程度的椒盐噪声后进行滤波,掌握基本的图象增强方法,观察图象增强的效果,发现窗口越大,图片越模糊。
全部评论 (0)
还没有任何评论哟~
