图像处理课程设计报告书
- 格式:doc
- 大小:1.43 MB
- 文档页数:21
《图像处理技术应用实践》课程设计题目图像增强算法综合应用
学生帅_______
学号 ___
院系计算机与软件学院
专业计算机科学与技术
任课教师春年____
二O一七年五月
图像处理技术应用实践—课程设计2
1、设计容
图像增强处理:设计一套空间域与频率域结合的图像增强算法,处理以下任一组图片中的带噪声图像,去除噪声,提高图像质量。
(1)已知:噪声为随机噪声和周期噪声混合噪声;
(2)要求:
a)去噪处理后,计算均方误差评估去噪处理后图像的去噪效果b)撰写完整的科技报告(形式类似科技论文)表述自己的算法设计,算法实现与算法评估过程。
第一组图片:
第二组图片:
2、图像增强算法
2.1问题分析
(1)图片中加入了随机噪声和周期噪声混合噪声。针对不同的噪声,不同的去噪方法效果不同,因此应该采用不同的去噪方法以达到最好的去噪效果。
(2)随机噪声应在空间域去除,而空域去噪方法中,中值滤波法效果最好。
(3)周期噪声应在频域中消去。
(4)去除噪声后的图像仍然可以改善处理。
(5)均方误差评估去噪处理后图像的去噪效果。
2.2算法设计
(1)读入初始图片及加噪图片。
clc; clear;
f=imread();
g=imread();
(2)利用空域滤波,去除随机噪声,此时用中值滤波法,并显示它的频谱图和直方图。
g=medfilt2(g,[3,3]);
(3)利用频域滤波,去除周期噪声。先转化成double型,进行傅里叶变换,再转化成数据矩阵,最后利用低通滤波去除周期噪声。
G=double(g); %转化double
G=fft2(G);
G=fftshift(G);
[M,N]=size(G);
nn=2;
d0=25;
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
(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、算法实现
clear;clc;
f=imread('C:\dogOriginal.bmp');
g=imread('C:\dogDistorted.bmp');
f1=double(f);
f2=fft2(f1);
f2=fftshift(f2);
g1=double(g);
g2=fft2(g1);
g2=fftshift(g2);
g3=medfilt2(g,[3,3]); %3*3模板中值滤波去除随机噪声
g4=double(g3);
F1=fft2(g3);
F1=fftshift(F1);
G=F1;
[M,N]=size(G); %低通滤波
nn=2;
d0=25;
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));
%h=1/(1+(d/d0)^(2*nn)); %备用
G(i,j)=h*G(i,j);
end
end
p=uint8(real(ifft2(ifftshift(G))));
subplot(341);imshow(f),title('原图');
subplot(345);imshow(log(abs(f2)),[]),title('频谱'); subplot(349);imhist(f),title('原图');
subplot(342);imshow(g),title('噪声');
subplot(346);imshow(log(abs(g2)),[]),title(' '); subplot(3,4,10);imhist(g),title('噪声');
subplot(343);imshow(g3),title('去随机噪声'); subplot(347);imshow(log(abs(F1)),[]),title(' '); subplot(3,4,11);imhist(g3),title('去随机噪声');
subplot(344);imshow(p,[]),title('去噪');
subplot(348);imshow(log(abs(G)),[]),title(' '); subplot(3,4,12);imhist(p),title('去噪');
[m,n]=size(p);
l=f-p;