资源描述
______________________________________________________________________________________________________________
《图像处理技术应用实践》课程设计
题 目 图像增强算法综合应用
学生姓名
学 号
院 系
专 业
任课教师
xxxx年xx月xx日
图像增强算法综合应用
梅雨
南京信息工程大学计算机与软件学院,南京 210044
摘要: 图像增强是指增强图像中的有用信息,它可以是一个失真的过程,其目的是要改善图像的视觉效果。运用空间域与频率域相结合的算法,去除随机噪声和周期噪声的混合噪声,提高图像质量。
关键词: 随机噪声;周期噪声;空间域和频率域去噪
1 任务描述
图像增强处理:设计一套空间域与频率域结合的图像增强算法,处理以下任一组图片中的带噪声图像,去除噪声,提高图像质量。
(1)已知:噪声为随机噪声和周期噪声混合噪声;
(2)要求:
a)去噪处理后,计算均方误差评估去噪处理后图像的去噪效果
b)撰写完整的科技报告(形式类似科技论文)表述自己的算法设计,算法实现与算法评估过程。
第一组图片:
第二组图片:
2 图像增强算法
2.1问题分析
(1) 图片中加入了随机噪声和周期噪声混合噪声。针对不同的噪声,不同的去噪方法效果不同,因此应该采用不同的去噪方法以达到最好的去噪效果。
(2) 随机噪声应在空间域去除,而空域去噪方法中,中值滤波法效果最好。
(3) 周期噪声应在频域中消去。
(4) 去除噪声后的图像仍然可以改善处理。
(5) 均方误差评估去噪处理后图像的去噪效果。
2.2算法设计
(1)读入初始图片及加噪图片。
clc;
clear;
f=imread('D:\dogOriginal.bmp');
g=imread('D:\dogDistorted.bmp');
(2) 利用空域滤波,去除随机噪声,此时用中值滤波法,并显示它的频谱图。
g3=medfilt2(g,[3,3]);
图1 空域滤波后的图像与原图的比较
(3)利用频域滤波,去除周期噪声。先转化成double型,进行傅里叶变换,再转化成数据矩阵,最后利用低通滤波去除周期噪声。
F = double(g); % 数据类型转换,MATLAB不支持图像的无符号整型的计算
G = fft2(F); % 傅里叶变换
G= fftshift(G); % 转换数据矩阵
[M,N]=size(G);
nn = 2; % 二阶巴特沃斯(Butterworth)低通滤波器
d0 = 27;
m = fix(M/2);
n = fix(N/2);
for i = 1 : M
for j = 1 : N
d = sqrt((i-m)^2+(j-n)^2);
h = 1/(1+0.414*(d/d0)^(2*nn)); % 计算低通滤波器传递函数
result(i,j) = h * G(i,j);
end
end
图2 去除混合噪声后的图像与原图的比较
(4)计算均方误差评估去噪效果。
[m n]=size(p);
l=f-p;
he=sum(sum(l));
avg=he/(m*n);
k=l-avg;
result1=(sum(sum(k.^2)))/(m*n);
if result1==0
disp('dog图均方误差');
result2=0
else
disp('dog图均方误差');
result2=sqrt(result1)
end
3 算法实现
代码clc;
clear;
f=imread('D:\dogOriginal.bmp');
subplot(421);imshow(f),title('原图');
f1=double(f);
f2=fft2(f1); % 傅立叶变换
f2=fftshift(f2);
subplot(422);imshow(log(abs(f2)),[]),title('原图频谱图');
g=imread('D:\dogDistorted.bmp');
subplot(423);imshow(g),title('混合噪声图');
g1=double(g);
g2=fft2(g1); % 傅立叶变换
g2=fftshift(g2);
subplot(424);imshow(log(abs(g2)),[]),title('混合噪声频谱图');
%空域滤波,去除随机噪声(中值)
g3=medfilt2(g,[3,3]);
subplot(425);imshow(g3),title('去除随机噪声');
g4=double(g3);
F1=fft2(g3);%对图像进行傅立叶变换
F1=fftshift(F1);%移频
figure,subplot(426),imshow(log(abs(F1)),[]),title('去除随机噪声频谱图');
%频域滤波
G= F1;
[M,N]=size(G);
nn = 2; % 二阶巴特沃斯(Butterworth)低通滤波器
d0 = 27;
m = fix(M/2);
n = fix(N/2);
for i = 1 : M
for j = 1 : N
d = sqrt((i-m)^2+(j-n)^2);
h = 1/(1+0.414*(d/d0)^(2*nn)); % 计算低通滤波器传递函数
result(i,j) = h * G(i,j);
end
end
result = ifftshift(result);
g = ifft2(result);
p= uint8(real(g));
subplot(427);imshow(p,[]),title('去噪后的图');
subplot(428);imshow(log(abs(result)),[]),title('去噪后的频谱图');
%计算均方误差
[m n]=size(p);
l=f-p;
he=sum(sum(l));
avg=he/(m*n);
k=l-avg;
result1=(sum(sum(k.^2)))/(m*n);
if result1==0
disp('dog图均方误差');
result2=0
else
disp('dog图均方误差');
result2=sqrt(result1)
end
4 运行结果
图3 分步去噪与原图的比较
图4 均方误差结果
5 程序分析
通过本次设计,我发现去噪后的图不如原图清晰,去噪效果不是很好,可以采用其他算法观察去噪效果,也可以采用锐化函数对图像进一步锐化,提高图像质量。
参考文献:
[1]章毓晋.图像工程(上册):图像处理(第3版),清华大学出版社,2012
[2]徐炜君、刘国忠.空间域和频域结合的图像增强技术及实现,中国测试,2009,7
[3]余成波.数字图像处理及MATLAB实现,重庆大学,2003
Welcome To
Download !!!
欢迎您的下载,资料仅供参考!
精品资料
展开阅读全文