4.空域锐化滤波
原图拉普拉斯算子对原图锐化滤波图原图的数据类型变为双精度浮点型即图 f拉普拉斯算子对 f锐化滤波图新算子(w1)对 f锐化滤波图
灰度变换之动态范围扩展
原图(pout)原图的直方图600040002000000.51
图 f减去其锐化滤波(拉普拉斯算子)后的图图pout调整灰度值后的图 pout调整灰度值后的直方图40002000000.51
图 f减去其锐化滤波(新算子(w1))后的图11
(二)1
2.非锐化掩蔽和高斯滤波 原图I减J产生的差值图像M原图进行平均值平滑滤波得到模糊图像JM的30倍加I得到的锐化后的图像N
12
对
实验三 图像的滤波及增强
一、 实验目的
1进一步了解MatLab软件/语言,学会使用MatLab对图像作滤波处理,使学生有机会掌握滤波算法,体会滤波效果。
2了解几种不同滤波方式的使用和使用的场合,培养处理实际图像的能力,并为课堂教学提供配套的实践机会。
3 熟悉傅立叶变换的基本性质; 4 熟练掌握FFT变换方法及应用;
二、实验内容与步骤
(1)模板滤波
a) 调入并显示原始图像Sample2-1.jpg 。
b) 利用imnoise 命令在图像Sample2-1.jpg 上加入高斯(gaussian) 噪声 c)利用预定义函数fspecial 命令产生平均(average)滤波器
??1?1?1???19?1?????1?1?1?? ?d)分别采用3x3和5x5的模板,分别用平均滤波器以及中值滤波器,对加入噪声
的图像进行处理并观察不同噪声水平下,上述滤波器处理的结果;
e)选择不同大小的模板,对加入某一固定噪声水平噪声的图像进行处理,观察上述滤波器处理的结果。
f)利用imnoise 命令在图像Sample2-1.jpg 上加入椒盐噪声(salt & pepper) g)重复c)~ e)的步骤 h)输出全部结果并进行讨论。 (2)频域滤波
1. 将图像内容读入内存;
2. 用Fourier变换算法,对图像作二维Fourier变换; 3. 将其幅度谱进行搬移,在图像中心显示; 4. 用Fourier系数的幅度进行Fourier反变换; 5. 用Fourier系数的相位进行Fourier反变换;
6. 比较4、5的结果,评价人眼对图像幅频特性和相频特性的敏感度。
7.记录和整理实验报告。
13
三 实验源程序
(1)模板滤波 clc;clear all; close all
I=imread('cameraman.tif');
J = imnoise(I,'gauss',0.02); %添加高斯噪声,叠加密度为0.02 ave1=fspecial('average',3); %产生3×3的均值模板 ave2=fspecial('average',5); %产生5×5的均值模板 K = filter2(ave1,J)/255; %均值滤波3×3 L = filter2(ave2,J)/255; %均值滤波5×5
M = medfilt2(J,[3 3]); %中值滤波3×3模板 N = medfilt2(J,[5 5]); %中值滤波5×5模板 subplot(2,3,1),imshow(I);title('原图');
subplot(2,3,2),imshow(J);title('添加高斯噪声图J'); subplot(2,3,3),imshow(K);title('对J均值滤波3×3'); subplot(2,3,4),imshow(L);title('对J均值滤波5×5'); subplot(2,3,5),imshow(M);title('对J中值滤波3×3'); subplot(2,3,6),imshow(N);title('对J中值滤波5×5');
J1 = imnoise(I,'salt & pepper',0.02); %添加椒盐噪声,叠加密度为0.02 K1 = filter2(ave1,J1)/255; %均值滤波3×3 L1 = filter2(ave2,J1)/255; %均值滤波5×5
M1 = medfilt2(J1,[3 3]); %中值滤波3×3模板 N1= medfilt2(J1,[5 5]); %中值滤波5×5模板 figure(2);
subplot(2,3,1),imshow(I);title('原图');
subplot(2,3,2),imshow(J1);title('添加椒盐噪声J1'); subplot(2,3,3),imshow(K1);title('对J1均值滤波3×3'); subplot(2,3,4),imshow(L1);title('对J1均值滤波5×5'); subplot(2,3,5),imshow(M1);title('对J1中值滤波3×3'); subplot(2,3,6),imshow(N1);title('对J1中值滤波5×5'); (2)频域滤波 clc;clear all; close all
I=imread('cameraman.tif'); %读入原图像文件 fftI=fft2(I); %二维离散傅立叶变换 sfftI=fftshift(fftI); %直流分量移到频谱中心 RR=real(sfftI); %取傅立叶变换的实部 II=imag(sfftI); %取傅立叶变换的虚部 A=sqrt(RR.^2+II.^2); %计算频谱幅值
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225; %归一化 f1=ifft2(A);%用Fourier系数的幅度进行Fourier反变换;
f2=ifft2(angle(fftI));%用Fourier系数的相位进行Fourier反变换; subplot(2,2,2),imshow(A),title('原图像的频谱');%显示原图像的频谱 subplot(2,2,1),imshow(I),title('原图');
subplot(2,2,3),imshow(f1,[]),title('用Fourier系数的幅度进行Fourier反变换后的图'); subplot(2,2,4),imshow(f2,[]),title('用Fourier系数的相位进行Fourier反变换后的图');
14
四 实验结果
(1)模板滤波
原图对J均值滤波5×5原图对J1均值滤波5×5
添加高斯噪声图J对J中值滤波3×3添加椒盐噪声J1对J1中值滤波3×3对J均值滤波3×3对J中值滤波5×5对J1均值滤波3×3对J1中值滤波5×515